evaengine 0.11.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/.ai/analysis.md +657 -0
  2. package/.ai/architecture/runtime.md +504 -0
  3. package/.ai/contracts/public-api.md +447 -0
  4. package/.ai/external-project-guide.md +248 -0
  5. package/.ai/vision.md +314 -0
  6. package/README.md +51 -62
  7. package/bin/engine +15 -21
  8. package/index.js +2 -18
  9. package/package.json +60 -64
  10. package/src/commands/index.js +12 -0
  11. package/{lib → src}/commands/interface.js +5 -11
  12. package/src/commands/make_entity.js +490 -0
  13. package/src/commands/tramp.js +34 -0
  14. package/{lib → src}/config/index.js +7 -9
  15. package/{lib → src}/di.js +11 -26
  16. package/src/engine.js +551 -0
  17. package/{lib → src}/entities/index.js +72 -82
  18. package/{lib → src}/exceptions/index.js +71 -92
  19. package/src/index.js +57 -0
  20. package/src/middlewares/auth.js +67 -0
  21. package/src/middlewares/auth_kong.js +28 -0
  22. package/src/middlewares/debug.js +88 -0
  23. package/src/middlewares/index.js +18 -0
  24. package/src/middlewares/providers.js +73 -0
  25. package/src/middlewares/session.js +58 -0
  26. package/{lib → src}/middlewares/trace.js +74 -86
  27. package/src/middlewares/validator.js +50 -0
  28. package/src/middlewares/view_cache.js +127 -0
  29. package/{lib → src}/services/cache.js +45 -56
  30. package/src/services/config.js +111 -0
  31. package/src/services/env.js +28 -0
  32. package/src/services/event_manager.js +84 -0
  33. package/src/services/http_client.js +160 -0
  34. package/src/services/index.js +27 -0
  35. package/src/services/interface.js +5 -0
  36. package/src/services/joi.js +13 -0
  37. package/src/services/jwt_token.js +89 -0
  38. package/src/services/jwt_token_kong.js +75 -0
  39. package/src/services/logger.js +148 -0
  40. package/src/services/namespace.js +176 -0
  41. package/src/services/now.js +49 -0
  42. package/src/services/providers.js +158 -0
  43. package/src/services/redis.js +55 -0
  44. package/src/services/rest_client.js +112 -0
  45. package/src/swagger/index.js +668 -0
  46. package/{lib → src}/utils/api_scaffold.js +26 -39
  47. package/src/utils/case_converter.js +33 -0
  48. package/src/utils/crc32.js +44 -0
  49. package/src/utils/datetime.js +13 -0
  50. package/src/utils/host.js +39 -0
  51. package/src/utils/index.js +35 -0
  52. package/{lib → src}/utils/pagination.js +22 -31
  53. package/src/utils/random.js +23 -0
  54. package/{lib → src}/utils/smart_query.js +27 -27
  55. package/src/utils/test.js +48 -0
  56. package/src/utils/wrapper.js +8 -0
  57. package/bin/engine-babel +0 -38
  58. package/lib/commands/index.js +0 -25
  59. package/lib/commands/index.js.map +0 -1
  60. package/lib/commands/interface.js.map +0 -1
  61. package/lib/commands/make_entity.js +0 -549
  62. package/lib/commands/make_entity.js.map +0 -1
  63. package/lib/commands/tramp.js +0 -53
  64. package/lib/commands/tramp.js.map +0 -1
  65. package/lib/config/index.js.map +0 -1
  66. package/lib/di.js.map +0 -1
  67. package/lib/engine.js +0 -558
  68. package/lib/engine.js.map +0 -1
  69. package/lib/entities/index.js.map +0 -1
  70. package/lib/exceptions/index.js.map +0 -1
  71. package/lib/index.js +0 -105
  72. package/lib/index.js.map +0 -1
  73. package/lib/middlewares/auth.js +0 -97
  74. package/lib/middlewares/auth.js.map +0 -1
  75. package/lib/middlewares/auth_kong.js +0 -48
  76. package/lib/middlewares/auth_kong.js.map +0 -1
  77. package/lib/middlewares/debug.js +0 -68
  78. package/lib/middlewares/debug.js.map +0 -1
  79. package/lib/middlewares/index.js +0 -45
  80. package/lib/middlewares/index.js.map +0 -1
  81. package/lib/middlewares/providers.js +0 -102
  82. package/lib/middlewares/providers.js.map +0 -1
  83. package/lib/middlewares/session.js +0 -76
  84. package/lib/middlewares/session.js.map +0 -1
  85. package/lib/middlewares/trace.js.map +0 -1
  86. package/lib/middlewares/validator.js +0 -71
  87. package/lib/middlewares/validator.js.map +0 -1
  88. package/lib/middlewares/view_cache.js +0 -160
  89. package/lib/middlewares/view_cache.js.map +0 -1
  90. package/lib/services/cache.js.map +0 -1
  91. package/lib/services/config.js +0 -140
  92. package/lib/services/config.js.map +0 -1
  93. package/lib/services/env.js +0 -40
  94. package/lib/services/env.js.map +0 -1
  95. package/lib/services/event_manager.js +0 -110
  96. package/lib/services/event_manager.js.map +0 -1
  97. package/lib/services/http_client.js +0 -178
  98. package/lib/services/http_client.js.map +0 -1
  99. package/lib/services/index.js +0 -70
  100. package/lib/services/index.js.map +0 -1
  101. package/lib/services/interface.js +0 -12
  102. package/lib/services/interface.js.map +0 -1
  103. package/lib/services/joi.js +0 -28
  104. package/lib/services/joi.js.map +0 -1
  105. package/lib/services/jwt_token.js +0 -120
  106. package/lib/services/jwt_token.js.map +0 -1
  107. package/lib/services/jwt_token_kong.js +0 -111
  108. package/lib/services/jwt_token_kong.js.map +0 -1
  109. package/lib/services/logger.js +0 -172
  110. package/lib/services/logger.js.map +0 -1
  111. package/lib/services/namespace.js +0 -188
  112. package/lib/services/namespace.js.map +0 -1
  113. package/lib/services/now.js +0 -69
  114. package/lib/services/now.js.map +0 -1
  115. package/lib/services/providers.js +0 -195
  116. package/lib/services/providers.js.map +0 -1
  117. package/lib/services/redis.js +0 -77
  118. package/lib/services/redis.js.map +0 -1
  119. package/lib/services/rest_client.js +0 -136
  120. package/lib/services/rest_client.js.map +0 -1
  121. package/lib/swagger/index.js +0 -684
  122. package/lib/swagger/index.js.map +0 -1
  123. package/lib/utils/api_scaffold.js.map +0 -1
  124. package/lib/utils/case_converter.js +0 -48
  125. package/lib/utils/case_converter.js.map +0 -1
  126. package/lib/utils/crc32.js +0 -22
  127. package/lib/utils/crc32.js.map +0 -1
  128. package/lib/utils/datetime.js +0 -21
  129. package/lib/utils/datetime.js.map +0 -1
  130. package/lib/utils/host.js +0 -48
  131. package/lib/utils/host.js.map +0 -1
  132. package/lib/utils/index.js +0 -61
  133. package/lib/utils/index.js.map +0 -1
  134. package/lib/utils/pagination.js.map +0 -1
  135. package/lib/utils/random.js +0 -33
  136. package/lib/utils/random.js.map +0 -1
  137. package/lib/utils/smart_query.js.map +0 -1
  138. package/lib/utils/test.js +0 -62
  139. package/lib/utils/test.js.map +0 -1
  140. package/lib/utils/wrapper.js +0 -9
  141. package/lib/utils/wrapper.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/entities/index.js"],"names":["Sequelize","prototype","validateIsUnique","col","msg","conditions","where","message","v","value","next","self","Model","describe","then","schema","Object","keys","filter","field","primaryKey","forEach","pk","$ne","count","found","catch","Entities","constructor","entitiesPath","sequelizeInstance","sequelize","entities","scanned","addTracer","options","logger","DI","get","assign","benchmark","logging","args","tracer","query","cost","pushed","queries","push","finishedAt","verbose","scan","withAssociate","fs","readdirSync","file","fileArray","split","indexOf","pop","entity","import","path","join","name","values","associate","init","getInstance","config","ns","isEnabled","cls","use","getContext","dbConfig","db","process","env","SEQUELIZE_REPLICATION_CONFIG_KEY","replication","database","util","isFunction","debug","sql","bind","type","getSequelize","QueryTypes","SELECT","uniqueInsert","tableName","input","uniqueCondition","transaction","inputObj","typeAllowed","entries","p","valType","StandardException","columns","columnString","valueString","map","key","uniqueString","dialect","QueryGenerator","getWhereConditions","INSERT","getTransaction","autocommit","getAll"],"mappings":"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","file":"index.js","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport assert from 'assert';\nimport cloneDeep from 'lodash/cloneDeep';\nimport Sequelize from 'sequelize';\nimport util from 'util';\nimport DI from '../di';\nimport { getMicroTimestamp } from '../utils';\nimport { StandardException } from '../exceptions';\n\n//From https://github.com/angelxmoreno/sequelize-isunique-validator\nSequelize.prototype.validateIsUnique = (col, msg) => {\n const conditions = { where: {} };\n const message = msg || `${col} must be unique`;\n return function v(value, next) {\n const self = this;\n this.Model.describe().then((schema) => {\n conditions.where[col] = value;\n Object\n .keys(schema)\n .filter(field => schema[field].primaryKey)\n .forEach((pk) => {\n conditions.where[pk] = { $ne: self[pk] };\n });\n }).then(() =>\n self.Model.count(conditions).then((found) => {\n if (found !== 0) {\n return next(message);\n }\n return next();\n })).catch(next);\n };\n};\n\n\nexport default class Entities {\n /**\n * @param {string} entitiesPath\n * @param {Sequelize|Function} sequelizeInstance\n */\n constructor(entitiesPath, sequelizeInstance = null) {\n this.entitiesPath = entitiesPath;\n this.sequelize = sequelizeInstance;\n this.entities = {};\n this.scanned = false;\n }\n\n /**\n * Add tracer info to end of SQL query logging\n * @param options\n * @returns {*}\n */\n static addTracer(options = {}) {\n const logger = DI.get('logger');\n return Object.assign(options, {\n benchmark: true,\n logging: (...args) => {\n const tracer = DI.get('namespace').get('tracer');\n const [query, cost] = args;\n let pushed = false;\n if (tracer && cost > 0) {\n tracer.queries.push({\n query,\n cost: cost * 1000,\n finishedAt: getMicroTimestamp()\n });\n pushed = true;\n }\n logger.verbose(...args, !pushed ? '| Tracer' : '');\n }\n });\n }\n\n /**\n * Scan all entity schemas under a special path\n * @param entitiesPath\n * @param withAssociate\n * @returns {Entities}\n */\n scan(entitiesPath, withAssociate = true) {\n assert(this.sequelize && this.sequelize instanceof Sequelize, 'Scan entities require a sequelize instance');\n\n fs\n .readdirSync(entitiesPath)\n .filter((file) => {\n const fileArray = file.split('.');\n return (file.indexOf('.') !== 0) &&\n (['js', 'es6'].indexOf(fileArray.pop()) !== -1) && (fileArray[0] !== 'index');\n })\n .forEach((file) => {\n const entity = this.sequelize.import(path.join(entitiesPath, file));\n this.entities[entity.name] = entity;\n });\n\n if (!withAssociate) {\n return this;\n }\n\n Object.values(this.entities).forEach((entity) => {\n if ('associate' in entity) {\n entity.associate(this.entities);\n }\n });\n return this;\n }\n\n /**\n * Init sequelize instance from DI config\n * @param withAssociate\n * @returns {*}\n */\n init(withAssociate = true) {\n if (this.sequelize && this.scanned) {\n return this.sequelize;\n }\n\n const logger = DI.get('logger').getInstance();\n if (!this.sequelize) {\n const config = DI.get('config').get();\n const ns = DI.get('namespace');\n if (ns.isEnabled()) {\n //Inject sequelize inner namespace, refer: http://docs.sequelizejs.com/en/latest/docs/transactions/\n Sequelize.cls = ns.use().getContext();\n }\n\n const dbConfig = cloneDeep(config.db);\n if (process.env.SEQUELIZE_REPLICATION_CONFIG_KEY) {\n dbConfig.replication = dbConfig[process.env.SEQUELIZE_REPLICATION_CONFIG_KEY];\n }\n this.sequelize = new Sequelize(\n config.db.database, null, null,\n Object.assign({}, config.sequelize, dbConfig, Entities.addTracer())\n );\n } else {\n this.sequelize = util.isFunction(this.sequelize) ? this.sequelize() : this.sequelize;\n }\n\n this.scan(this.entitiesPath, withAssociate);\n this.scanned = true;\n\n //TODO: mask password in logging\n logger.debug('Entities init by scanned %s, Replication: %j', this.entitiesPath, this.sequelize.options.replication);\n return this;\n }\n\n /**\n * Shortcut for Sequelize query\n * @param sql\n * @param bind\n * @param options\n * @returns {*|{foo}|{}}\n */\n query(sql, bind = {}, options = {}) {\n return this.getInstance().query(sql, Object.assign({\n type: this.getSequelize().QueryTypes.SELECT\n }, options, { bind }));\n }\n\n /**\n * A shortcut to prevent repeat insert\n * @param tableName\n * @param input\n * @param uniqueCondition\n * @param transaction\n * @param options\n */\n uniqueInsert({\n tableName,\n input,\n uniqueCondition,\n transaction\n }, options = {}) {\n const inputObj = Object.assign({}, input);\n const typeAllowed = ['number', 'string', 'boolean'];\n Object.entries(inputObj).forEach((p) => {\n const valType = typeof p[1];\n //Allow null type here\n if (typeAllowed.indexOf(valType) === -1 && p[1] !== null) {\n throw new StandardException(`SQL inputObj ${p[0]}:${p[1]} with unsupported type ${valType}.`);\n } else if (valType === 'boolean') {\n if (p[1] === true) {\n inputObj[p[0]] = 1;\n } else {\n inputObj[p[0]] = 0;\n }\n }\n });\n const columns = Object.keys(inputObj);\n const columnString = ['`', columns.join('`, `'), '`'].join('');\n const valueString = Object.entries(inputObj).map(([key]) => `$${key} \\`${key}\\``).join(' , ');\n const uniqueString = typeof uniqueCondition === 'string' ? uniqueCondition :\n [`SELECT * FROM ${tableName} WHERE `, this.getInstance().dialect.QueryGenerator.getWhereConditions(uniqueCondition)].join('');\n /*\n Original Example:\n entities.getInstance().query(`INSERT INTO ${tableName}\n (userId, status)\n (\n SELECT *\n FROM (SELECT $userId userId, $status status) AS tmp\n WHERE NOT EXISTS (\n SELECT id FROM ${auditTable} WHERE userId = $userId AND status = 'pending'\n ) LIMIT 1\n )`, { bind, transaction, type: entities.getSequelize().QueryTypes.INSERT });\n */\n\n const sql = `INSERT INTO ${tableName} \n (${columnString}) \n (\n SELECT *\n FROM (SELECT ${valueString}) AS tmp\n WHERE NOT EXISTS (\n ${uniqueString} FOR UPDATE\n ) LIMIT 1\n )`; //add FOR UPDATE to use eXclusive Lock\n return this.getInstance().query(sql, Object.assign({\n bind: inputObj,\n transaction,\n type: Sequelize.QueryTypes.INSERT\n }, options));\n }\n\n /**\n * A short cut to start a database transaction\n * @param options\n */\n getTransaction(options = {}) {\n return this.getInstance().transaction(Object.assign({\n autocommit: true\n }, options));\n }\n\n /**\n * @returns {Sequelize}\n */\n getSequelize() {\n return Sequelize;\n }\n\n /**\n * @returns {Sequelize}\n */\n getInstance() {\n this.init();\n return this.sequelize;\n }\n\n /**\n * @param name\n * @returns {Sequelize}\n */\n get(name) {\n this.init();\n return this.entities[name];\n }\n\n /**\n * @returns {Object}\n */\n getAll() {\n this.init();\n return this.entities;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/exceptions/index.js"],"names":["Error","prototype","Object","defineProperty","value","alt","getOwnPropertyNames","forEach","key","configurable","writable","i18nHandler","format","factory","StandardException","hash","str","padstr","crcstr","toString","substring","length","generateCode","className","fileName","__filename","namespace","replace","appRoot","path","split","sep","join","group","parseInt","stackBeautifier","stack","lines","stackOut","line","match","push","setI18nHandler","handler","json","statusCode","constructor","exceptionOrMsg","throwingNothing","throwingString","throwingSelf","throwingError","throwingUnknown","TypeError","message","name","humanMessage","captureStackTrace","details","prevError","code","filename","translated","importance","setPrevError","i18n","args","getHumanMessage","setMessage","setCode","getCode","getStatusCode","setImportance","getImportance","setFileName","getFileName","setDetails","getDetails","Array","isArray","getPrevError","toJSON","errors","fullStack","LogicException","InvalidArgumentException","FormInvalidateException","isJoi","ModelInvalidateException","HttpRequestLogicException","includes","response","request","requestParams","responseParams","businessCode","setResponse","getRequest","getResponse","setRequestParams","params","getRequestParams","setResponseParams","getResponseParams","setBusinessCode","getBusinessCode","RestServiceLogicException","body","UnauthorizedException","OperationNotPermittedException","ResourceNotFoundException","OperationUnsupportedException","ResourceConflictedException","RuntimeException","IOException","HttpRequestIOException","RestServiceIOException","DatabaseIOException","exceptions","e","keys"],"mappings":"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","file":"index.js","sourcesContent":["import appRoot from 'app-root-path';\nimport path from 'path';\nimport { format } from 'util';\nimport crc32 from '../utils/crc32';\n\n\n/**\n * Make Error be able to work with JSON.stringify()\n */\nif (!('toJSON' in Error.prototype)) {\n Object.defineProperty(Error.prototype, 'toJSON', { //eslint-disable-line\n value: function () { //eslint-disable-line\n const alt = {};\n Object.getOwnPropertyNames(this).forEach(function (key) { //eslint-disable-line\n alt[key] = this[key];\n }, this);\n return alt;\n },\n configurable: true,\n writable: true\n });\n}\n\n\nlet i18nHandler = format;\n\nlet factory = () => {\n};\n\n/**\n * Exception interface\n * Support usages:\n * throw new Exception();\n * throw new Exception('Something');\n * throw new Exception(new Error());\n * throw new Exception(new Exception());\n * throw (new Exception()).i18n('some %d', 123)\n */\nexport class StandardException extends Error {\n /**\n * Generate string hash by crc32\n * @param {string} str\n * @param {string} padstr\n * @returns {string}\n */\n static hash(str, padstr = '0000000000') {\n const crcstr = crc32(str).toString();\n return padstr.substring(0, padstr.length - crcstr.length) + crcstr;\n }\n\n /**\n * Hash an exception into an 18 bits code\n * @param {string} className\n * @param {string} fileName\n * @returns {Number}\n */\n static generateCode(className, fileName = __filename) {\n const namespace = fileName.replace(appRoot.path, '').split(path.sep).join('/');\n const group = fileName === __filename ? '11111' : crc32(namespace).toString().substring(0, 5);\n return parseInt(`${group}000${StandardException.hash(className)}`, 10);\n }\n\n /**\n * Remove useless info from error stack\n * @param {string} stack\n * @returns {Array}\n */\n static stackBeautifier(stack) {\n const lines = stack.split('\\n');\n const stackOut = [];\n for (const line of lines) {\n if (!line.match(/node_modules|\\(node\\.js|\\(native/)) {\n stackOut.push(line);\n }\n }\n return stackOut;\n }\n\n static setI18nHandler(handler) {\n i18nHandler = handler;\n }\n\n /**\n * Deserialize an exception from a JSON object\n * @param {object} json\n */\n static factory(json = {}) {\n return factory(json);\n }\n\n /**\n * Http status code\n * @returns {number}\n */\n get statusCode() {\n return 500;\n }\n\n /**\n * If throw a StandardException, keep throw to above\n * If throw a Error, set Error message to exception message, set Error to details\n * If throw a String, set String to exception message\n * If throw a null or undefined, set exception name as exception message\n * Otherwise, throw a TypeError\n *\n * @param {StandardException|Error|String} exceptionOrMsg\n */\n constructor(exceptionOrMsg) {\n const throwingNothing = !exceptionOrMsg;\n const throwingString = typeof exceptionOrMsg === 'string';\n const throwingSelf = exceptionOrMsg instanceof StandardException;\n const throwingError = exceptionOrMsg instanceof Error;\n const throwingUnknown = throwingNothing + throwingString + throwingSelf + throwingError === 0;\n\n if (throwingUnknown === true) {\n throw new TypeError('Unexpected params for exception');\n }\n\n if (throwingSelf === true) {\n throw exceptionOrMsg;\n }\n\n let message = 'Something wrong';\n if (throwingString === true) {\n message = exceptionOrMsg;\n }\n if (throwingError === true) {\n ({ message } = exceptionOrMsg);\n }\n super(message);\n\n if (throwingNothing === true) {\n message = this.constructor.name;\n }\n this.message = message;\n this.humanMessage = message;\n this.throwingError = throwingError;\n\n Error.captureStackTrace(this, this.constructor);\n this.details = throwingError ? exceptionOrMsg : [];\n this.prevError = {};\n this.code = null;\n this.filename = __filename;\n this.translated = false;\n this.importance = 0;\n if (throwingError === true) {\n this.setPrevError(exceptionOrMsg);\n }\n }\n\n i18n(...args) {\n this.message = format(...args);\n this.humanMessage = i18nHandler(...args);\n if (this.message !== this.humanMessage) {\n this.translated = true;\n }\n return this;\n }\n\n getHumanMessage() {\n if (this.translated) {\n return this.humanMessage;\n }\n let message = i18nHandler(this.message);\n if (message !== this.message) {\n this.humanMessage = message;\n this.translated = true;\n return this.humanMessage;\n }\n message = i18nHandler(this.constructor.name);\n if (message !== this.constructor.name) {\n this.humanMessage = message;\n this.translated = true;\n return this.humanMessage;\n }\n return this.message;\n }\n\n setMessage(message) {\n this.message = message;\n return this;\n }\n\n setCode(code) {\n this.code = parseInt(code, 10);\n return this;\n }\n\n getCode() {\n if (this.code) {\n return this.code;\n }\n this.code = StandardException.generateCode(this.constructor.name, this.filename) || -1;\n return this.code;\n }\n\n getStatusCode() {\n return this.statusCode;\n }\n\n setImportance(importance) {\n this.importance = parseInt(importance, 10);\n return this;\n }\n\n getImportance() {\n return this.importance;\n }\n\n setFileName(filename) {\n this.filename = filename;\n return this;\n }\n\n getFileName() {\n return this.filename;\n }\n\n setDetails(details) {\n this.details = details;\n return this;\n }\n\n getDetails() {\n return Array.isArray(this.details) ? this.details : [this.details];\n }\n\n setPrevError(prevError) {\n this.prevError = prevError;\n return this;\n }\n\n getPrevError() {\n return this.prevError;\n }\n\n toJSON() {\n return {\n statusCode: this.statusCode,\n code: this.getCode(),\n name: this.constructor.name,\n message: this.message,\n humanMessage: this.getHumanMessage(),\n filename: this.getFileName(),\n prevError: this.getPrevError(),\n errors: Array.isArray(this.getDetails()) ?\n this.getDetails() : [this.getDetails()],\n stack: StandardException.stackBeautifier(this.stack),\n fullStack: this.stack.split('\\n')\n };\n }\n}\n\nexport class LogicException extends StandardException {\n get statusCode() {\n return 400;\n }\n}\n\nexport class InvalidArgumentException extends LogicException {\n}\n\nexport class FormInvalidateException extends InvalidArgumentException {\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError && exceptionOrMsg.isJoi === true) {\n this.message = exceptionOrMsg.details[0].message;\n this.details = exceptionOrMsg.details;\n\n this.i18n(this.message);\n this.translated = true;\n }\n }\n}\n\nexport class ModelInvalidateException extends InvalidArgumentException {\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError) {\n this.details = exceptionOrMsg.errors;\n }\n }\n}\n\nexport class HttpRequestLogicException extends InvalidArgumentException {\n /**\n * Support request promise error\n * https://github.com/request/promise-core/blob/master/lib/errors.js\n * @param exceptionOrMsg\n */\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(exceptionOrMsg.name)) {\n this.details = exceptionOrMsg;\n const { response } = exceptionOrMsg;\n this.response = response || null;\n this.request = response ? response.request : null;\n }\n this.requestParams = null;\n this.responseParams = null;\n this.businessCode = null;\n }\n\n setResponse(response) {\n this.response = response || null;\n this.request = response ? response.request : null;\n return this;\n }\n\n getRequest() {\n if (!this.request) {\n throw new Error('No request set into exception');\n }\n return this.request;\n }\n\n getResponse() {\n if (!this.response) {\n throw new Error('No response set into exception');\n }\n return this.response;\n }\n\n setRequestParams(params) {\n this.requestParams = params;\n return this;\n }\n\n getRequestParams() {\n return this.requestParams;\n }\n\n setResponseParams(params) {\n this.responseParams = params;\n return this;\n }\n\n getResponseParams() {\n return this.responseParams;\n }\n\n setBusinessCode(code) {\n this.businessCode = code;\n return this;\n }\n\n getBusinessCode() {\n return this.businessCode;\n }\n}\n\nexport class RestServiceLogicException extends HttpRequestLogicException {\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError && this.response && this.response.body) {\n this.prevError = factory(this.response.body);\n }\n }\n}\n\nexport class UnauthorizedException extends LogicException {\n get statusCode() {\n return 401;\n }\n}\n\nexport class OperationNotPermittedException extends LogicException {\n get statusCode() {\n return 403;\n }\n}\n\nexport class ResourceNotFoundException extends LogicException {\n get statusCode() {\n return 404;\n }\n}\n\nexport class OperationUnsupportedException extends LogicException {\n get statusCode() {\n return 405;\n }\n}\n\nexport class ResourceConflictedException extends LogicException {\n get statusCode() {\n return 409;\n }\n}\n\nexport class RuntimeException extends StandardException {\n}\n\nexport class IOException extends RuntimeException {\n}\n\nexport class HttpRequestIOException extends IOException {\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(exceptionOrMsg.name)) {\n this.details = exceptionOrMsg;\n const { response } = exceptionOrMsg;\n this.response = response || null;\n this.request = response ? response.request : null;\n }\n this.requestParams = null;\n this.responseParams = null;\n this.businessCode = null;\n }\n\n getRequest() {\n return this.request;\n }\n\n getResponse() {\n return this.response;\n }\n\n setRequestParams(params) {\n this.requestParams = params;\n return this;\n }\n\n getRequestParams() {\n return this.requestParams;\n }\n\n setResponseParams(params) {\n this.responseParams = params;\n return this;\n }\n\n getResponseParams() {\n return this.responseParams;\n }\n\n setBusinessCode(code) {\n this.businessCode = code;\n return this;\n }\n\n getBusinessCode() {\n return this.businessCode;\n }\n}\n\nexport class RestServiceIOException extends HttpRequestIOException {\n constructor(exceptionOrMsg) {\n super(exceptionOrMsg);\n if (this.throwingError && this.response && this.response.body) {\n this.prevError = factory(this.response.body);\n }\n }\n}\n\nexport class DatabaseIOException extends IOException {\n}\n\nconst exceptions = {\n StandardException,\n LogicException,\n InvalidArgumentException,\n FormInvalidateException,\n ModelInvalidateException,\n HttpRequestLogicException,\n RestServiceLogicException,\n UnauthorizedException,\n OperationUnsupportedException,\n OperationNotPermittedException,\n ResourceNotFoundException,\n ResourceConflictedException,\n RuntimeException,\n IOException,\n HttpRequestIOException,\n RestServiceIOException,\n DatabaseIOException\n};\n\nfactory = (json) => {\n const {\n code, name, statusCode, message, prevError, errors, fullStack = []\n } = json;\n if (!code || !name || !statusCode || !message) {\n return {};\n }\n\n let e = null;\n if (Object.keys(exceptions).includes(name)) {\n e = new exceptions[name]; //eslint-disable-line\n } else if (statusCode < 500) {\n e = new LogicException(message);\n } else {\n e = new RuntimeException(message);\n }\n\n e.setCode(code)\n .setDetails(errors)\n .setPrevError(prevError);\n e.stack = fullStack.join('\\n');\n return e;\n};\n"]}
package/lib/index.js DELETED
@@ -1,105 +0,0 @@
1
- 'use strict';
2
-
3
- var _constitute = require('constitute');
4
-
5
- var _constitute2 = _interopRequireDefault(_constitute);
6
-
7
- var _mysql = require('mysql');
8
-
9
- var _mysql2 = _interopRequireDefault(_mysql);
10
-
11
- var _sequelize = require('sequelize');
12
-
13
- var _sequelize2 = _interopRequireDefault(_sequelize);
14
-
15
- var _joi = require('joi');
16
-
17
- var _joi2 = _interopRequireDefault(_joi);
18
-
19
- var _engine = require('./engine');
20
-
21
- var engine = _interopRequireWildcard(_engine);
22
-
23
- var _swagger = require('./swagger');
24
-
25
- var swagger = _interopRequireWildcard(_swagger);
26
-
27
- var _exceptions = require('./exceptions');
28
-
29
- var exceptions = _interopRequireWildcard(_exceptions);
30
-
31
- var _services = require('./services');
32
-
33
- var services = _interopRequireWildcard(_services);
34
-
35
- var _middlewares = require('./middlewares');
36
-
37
- var middlewares = _interopRequireWildcard(_middlewares);
38
-
39
- var _providers = require('./services/providers');
40
-
41
- var ServiceProviders = _interopRequireWildcard(_providers);
42
-
43
- var _providers2 = require('./middlewares/providers');
44
-
45
- var MiddlewareProviders = _interopRequireWildcard(_providers2);
46
-
47
- var _utils = require('./utils');
48
-
49
- var utils = _interopRequireWildcard(_utils);
50
-
51
- var _commands = require('./commands');
52
-
53
- var commands = _interopRequireWildcard(_commands);
54
-
55
- var _entities = require('./entities');
56
-
57
- var _entities2 = _interopRequireDefault(_entities);
58
-
59
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
60
-
61
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62
-
63
- const providers = {
64
- services: ServiceProviders,
65
- middlewares: MiddlewareProviders
66
- };
67
-
68
- const { wrapper } = utils;
69
-
70
- const {
71
- DI,
72
- express
73
- } = engine;
74
-
75
- /**
76
- * @typedef {Object} engineCore
77
- */
78
- const core = {
79
- EvaEngine: engine.default,
80
- Command: commands.default,
81
- DI,
82
- Entities: _entities2.default,
83
- engine,
84
- express,
85
- commands,
86
- dependencies: {
87
- Joi: _joi2.default,
88
- constitute: _constitute2.default,
89
- sequelize: _sequelize2.default,
90
- mysql: _mysql2.default
91
- },
92
- exceptions,
93
- middlewares,
94
- sequelize: _sequelize2.default,
95
- Joi: _joi2.default,
96
- swagger,
97
- services,
98
- providers,
99
- wrapper,
100
- utils
101
- };
102
-
103
- module.exports = core;
104
- exports = module.exports; //eslint-disable-line
105
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["engine","swagger","exceptions","services","middlewares","ServiceProviders","MiddlewareProviders","utils","commands","providers","wrapper","DI","express","core","EvaEngine","Command","Entities","dependencies","Joi","constitute","sequelize","mysql","module","exports"],"mappings":";;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;IAAuBA,M;;AACvB;;IAAYC,O;;AACZ;;IAAYC,U;;AACZ;;IAAYC,Q;;AACZ;;IAAYC,W;;AACZ;;IAAYC,gB;;AACZ;;IAAYC,mB;;AACZ;;IAAYC,K;;AACZ;;IAAqBC,Q;;AACrB;;;;;;;;AAEA,MAAMC,YAAY;AAChBN,YAAUE,gBADM;AAEhBD,eAAaE;AAFG,CAAlB;;AAKA,MAAM,EAAEI,OAAF,KAAcH,KAApB;;AAEA,MAAM;AACJI,IADI;AAEJC;AAFI,IAGFZ,MAHJ;;AAKA;;;AAGA,MAAMa,OAAO;AACXC,2BADW;AAEXC,2BAFW;AAGXJ,IAHW;AAIXK,8BAJW;AAKXhB,QALW;AAMXY,SANW;AAOXJ,UAPW;AAQXS,gBAAc;AACZC,sBADY;AAEZC,oCAFY;AAGZC,kCAHY;AAIZC;AAJY,GARH;AAcXnB,YAdW;AAeXE,aAfW;AAgBXgB,gCAhBW;AAiBXF,oBAjBW;AAkBXjB,SAlBW;AAmBXE,UAnBW;AAoBXM,WApBW;AAqBXC,SArBW;AAsBXH;AAtBW,CAAb;;AAyBAe,OAAOC,OAAP,GAAiBV,IAAjB;AACAU,UAAUD,OAAOC,OAAjB,C,CAA0B","file":"index.js","sourcesContent":["import constitute from 'constitute';\nimport mysql from 'mysql';\nimport sequelize from 'sequelize';\nimport Joi from 'joi';\nimport EvaEngine, * as engine from './engine';\nimport * as swagger from './swagger';\nimport * as exceptions from './exceptions';\nimport * as services from './services';\nimport * as middlewares from './middlewares';\nimport * as ServiceProviders from './services/providers';\nimport * as MiddlewareProviders from './middlewares/providers';\nimport * as utils from './utils';\nimport Command, * as commands from './commands';\nimport Entities from './entities';\n\nconst providers = {\n services: ServiceProviders,\n middlewares: MiddlewareProviders\n};\n\nconst { wrapper } = utils;\n\nconst {\n DI,\n express\n} = engine;\n\n/**\n * @typedef {Object} engineCore\n */\nconst core = {\n EvaEngine,\n Command,\n DI,\n Entities,\n engine,\n express,\n commands,\n dependencies: {\n Joi,\n constitute,\n sequelize,\n mysql\n },\n exceptions,\n middlewares,\n sequelize,\n Joi,\n swagger,\n services,\n providers,\n wrapper,\n utils\n};\n\nmodule.exports = core;\nexports = module.exports; //eslint-disable-line\n"]}
@@ -1,97 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _constitute = require('constitute');
8
-
9
- var _wrapper = require('../utils/wrapper');
10
-
11
- var _wrapper2 = _interopRequireDefault(_wrapper);
12
-
13
- var _exceptions = require('../exceptions');
14
-
15
- var _config2 = require('../services/config');
16
-
17
- var _config3 = _interopRequireDefault(_config2);
18
-
19
- var _now = require('../services/now');
20
-
21
- var _now2 = _interopRequireDefault(_now);
22
-
23
- var _jwt_token = require('../services/jwt_token');
24
-
25
- var _jwt_token2 = _interopRequireDefault(_jwt_token);
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
- function _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"); }); }; }
30
-
31
- /**
32
- * @param _config {Config}
33
- * @param token {JsonWebToken}
34
- * @returns {function()}
35
- * @constructor
36
- */
37
- function AuthMiddleware(_config, token, now) {
38
- const config = _config.get();
39
- return () => (0, _wrapper2.default)((() => {
40
- var _ref = _asyncToGenerator(function* (req, res, next) {
41
- const jwToken = req.header('X-Token') || req.query.api_key;
42
- if (config.token.faker.enable === true && req.auth && req.auth.uid) {
43
- res.set('X-Uid', req.auth.uid);
44
- return next();
45
- }
46
- if (config.token.faker.enable === true && jwToken === config.token.faker.key) {
47
- req.auth = { //eslint-disable-line no-param-reassign
48
- type: 'fake',
49
- uid: config.token.faker.uid,
50
- token: config.token.faker.key
51
- };
52
- res.set('X-Uid', config.token.faker.uid);
53
- return next();
54
- }
55
- if (jwToken) {
56
- let parsedToken = {};
57
- try {
58
- parsedToken = yield token.find(jwToken);
59
- } catch (e) {
60
- throw new _exceptions.UnauthorizedException('Token not recognizable');
61
- }
62
- const { uid, expiredAt } = parsedToken;
63
- if (!uid) {
64
- throw new _exceptions.UnauthorizedException('User info not found in token');
65
- }
66
- if (expiredAt < now.getTimestamp()) {
67
- throw new _exceptions.UnauthorizedException('Token expired');
68
- }
69
- req.auth = { //eslint-disable-line no-param-reassign
70
- type: 'jwt',
71
- uid,
72
- token: jwToken
73
- };
74
- res.set('X-Uid', uid);
75
- return next();
76
- }
77
-
78
- if (req.session && req.session.uid) {
79
- req.auth = { //eslint-disable-line no-param-reassign
80
- type: 'session',
81
- uid: req.session.uid,
82
- token: ''
83
- };
84
- res.set('X-Uid', req.session.uid);
85
- return next();
86
- }
87
- throw new _exceptions.UnauthorizedException('No authority token found');
88
- });
89
-
90
- return function (_x, _x2, _x3) {
91
- return _ref.apply(this, arguments);
92
- };
93
- })());
94
- }
95
- (0, _constitute.Dependencies)(_config3.default, _jwt_token2.default, _now2.default)(AuthMiddleware); //eslint-disable-line new-cap
96
- exports.default = AuthMiddleware;
97
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/auth.js"],"names":["AuthMiddleware","_config","token","now","config","get","req","res","next","jwToken","header","query","api_key","faker","enable","auth","uid","set","key","type","parsedToken","find","e","UnauthorizedException","expiredAt","getTimestamp","session","Config","JsonWebToken","Now"],"mappings":";;;;;;AAAA;;AACA;;;;AACA;;AACA;;;;AACA;;;;AACA;;;;;;;;AAEA;;;;;;AAMA,SAASA,cAAT,CAAwBC,OAAxB,EAAiCC,KAAjC,EAAwCC,GAAxC,EAA6C;AAC3C,QAAMC,SAASH,QAAQI,GAAR,EAAf;AACA,SAAO,MAAM;AAAA,iCAAQ,WAAOC,GAAP,EAAYC,GAAZ,EAAiBC,IAAjB,EAA0B;AAC7C,YAAMC,UAAUH,IAAII,MAAJ,CAAW,SAAX,KAAyBJ,IAAIK,KAAJ,CAAUC,OAAnD;AACA,UAAIR,OAAOF,KAAP,CAAaW,KAAb,CAAmBC,MAAnB,KAA8B,IAA9B,IAAsCR,IAAIS,IAA1C,IAAkDT,IAAIS,IAAJ,CAASC,GAA/D,EAAoE;AAClET,YAAIU,GAAJ,CAAQ,OAAR,EAAiBX,IAAIS,IAAJ,CAASC,GAA1B;AACA,eAAOR,MAAP;AACD;AACD,UAAIJ,OAAOF,KAAP,CAAaW,KAAb,CAAmBC,MAAnB,KAA8B,IAA9B,IAAsCL,YAAYL,OAAOF,KAAP,CAAaW,KAAb,CAAmBK,GAAzE,EAA8E;AAC5EZ,YAAIS,IAAJ,GAAW,EAAE;AACXI,gBAAM,MADG;AAETH,eAAKZ,OAAOF,KAAP,CAAaW,KAAb,CAAmBG,GAFf;AAGTd,iBAAOE,OAAOF,KAAP,CAAaW,KAAb,CAAmBK;AAHjB,SAAX;AAKAX,YAAIU,GAAJ,CAAQ,OAAR,EAAiBb,OAAOF,KAAP,CAAaW,KAAb,CAAmBG,GAApC;AACA,eAAOR,MAAP;AACD;AACD,UAAIC,OAAJ,EAAa;AACX,YAAIW,cAAc,EAAlB;AACA,YAAI;AACFA,wBAAc,MAAMlB,MAAMmB,IAAN,CAAWZ,OAAX,CAApB;AACD,SAFD,CAEE,OAAOa,CAAP,EAAU;AACV,gBAAM,IAAIC,iCAAJ,CAA0B,wBAA1B,CAAN;AACD;AACD,cAAM,EAAEP,GAAF,EAAOQ,SAAP,KAAqBJ,WAA3B;AACA,YAAI,CAACJ,GAAL,EAAU;AACR,gBAAM,IAAIO,iCAAJ,CAA0B,8BAA1B,CAAN;AACD;AACD,YAAIC,YAAYrB,IAAIsB,YAAJ,EAAhB,EAAoC;AAClC,gBAAM,IAAIF,iCAAJ,CAA0B,eAA1B,CAAN;AACD;AACDjB,YAAIS,IAAJ,GAAW,EAAE;AACXI,gBAAM,KADG;AAETH,aAFS;AAGTd,iBAAOO;AAHE,SAAX;AAKAF,YAAIU,GAAJ,CAAQ,OAAR,EAAiBD,GAAjB;AACA,eAAOR,MAAP;AACD;;AAED,UAAIF,IAAIoB,OAAJ,IAAepB,IAAIoB,OAAJ,CAAYV,GAA/B,EAAoC;AAClCV,YAAIS,IAAJ,GAAW,EAAE;AACXI,gBAAM,SADG;AAETH,eAAKV,IAAIoB,OAAJ,CAAYV,GAFR;AAGTd,iBAAO;AAHE,SAAX;AAKAK,YAAIU,GAAJ,CAAQ,OAAR,EAAiBX,IAAIoB,OAAJ,CAAYV,GAA7B;AACA,eAAOR,MAAP;AACD;AACD,YAAM,IAAIe,iCAAJ,CAA0B,0BAA1B,CAAN;AACD,KAhDY;;AAAA;AAAA;AAAA;AAAA,OAAb;AAiDD;AACD,8BAAaI,gBAAb,EAAqBC,mBAArB,EAAmCC,aAAnC,EAAwC7B,cAAxC,E,CAAyD;kBAC1CA,c","file":"auth.js","sourcesContent":["import { Dependencies } from 'constitute';\nimport wrapper from '../utils/wrapper';\nimport { UnauthorizedException } from '../exceptions';\nimport Config from '../services/config';\nimport Now from '../services/now';\nimport JsonWebToken from '../services/jwt_token';\n\n/**\n * @param _config {Config}\n * @param token {JsonWebToken}\n * @returns {function()}\n * @constructor\n */\nfunction AuthMiddleware(_config, token, now) {\n const config = _config.get();\n return () => wrapper(async (req, res, next) => {\n const jwToken = req.header('X-Token') || req.query.api_key;\n if (config.token.faker.enable === true && req.auth && req.auth.uid) {\n res.set('X-Uid', req.auth.uid);\n return next();\n }\n if (config.token.faker.enable === true && jwToken === config.token.faker.key) {\n req.auth = { //eslint-disable-line no-param-reassign\n type: 'fake',\n uid: config.token.faker.uid,\n token: config.token.faker.key\n };\n res.set('X-Uid', config.token.faker.uid);\n return next();\n }\n if (jwToken) {\n let parsedToken = {};\n try {\n parsedToken = await token.find(jwToken);\n } catch (e) {\n throw new UnauthorizedException('Token not recognizable');\n }\n const { uid, expiredAt } = parsedToken;\n if (!uid) {\n throw new UnauthorizedException('User info not found in token');\n }\n if (expiredAt < now.getTimestamp()) {\n throw new UnauthorizedException('Token expired');\n }\n req.auth = { //eslint-disable-line no-param-reassign\n type: 'jwt',\n uid,\n token: jwToken\n };\n res.set('X-Uid', uid);\n return next();\n }\n\n if (req.session && req.session.uid) {\n req.auth = { //eslint-disable-line no-param-reassign\n type: 'session',\n uid: req.session.uid,\n token: ''\n };\n res.set('X-Uid', req.session.uid);\n return next();\n }\n throw new UnauthorizedException('No authority token found');\n });\n}\nDependencies(Config, JsonWebToken, Now)(AuthMiddleware); //eslint-disable-line new-cap\nexport default AuthMiddleware;\n"]}
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _exceptions = require('../exceptions');
8
-
9
- var _wrapper = require('../utils/wrapper');
10
-
11
- var _wrapper2 = _interopRequireDefault(_wrapper);
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
- function _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"); }); }; }
16
-
17
- /**
18
- * @returns {function()}
19
- * @constructor
20
- */
21
- function AuthKongMiddleware() {
22
- return () => (0, _wrapper2.default)((() => {
23
- var _ref = _asyncToGenerator(function* (req, res, next) {
24
- if (req.headers['x-anonymous-consumer'] === 'true') {
25
- throw new _exceptions.UnauthorizedException('Authentication failed');
26
- }
27
- const uid = Number.parseInt(req.headers['x-consumer-custom-id'], 10);
28
- const mobile = req.headers['x-consumer-custom-username'];
29
- if (uid > 0) {
30
- res.set('X-Uid', uid);
31
- res.set('X-Mobile', mobile);
32
- req.auth = {
33
- uid,
34
- mobile
35
- };
36
- return next();
37
- }
38
- throw new _exceptions.UnauthorizedException('Authentication failed, invalid UID');
39
- });
40
-
41
- return function (_x, _x2, _x3) {
42
- return _ref.apply(this, arguments);
43
- };
44
- })());
45
- }
46
-
47
- exports.default = AuthKongMiddleware;
48
- //# sourceMappingURL=auth_kong.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/auth_kong.js"],"names":["AuthKongMiddleware","req","res","next","headers","UnauthorizedException","uid","Number","parseInt","mobile","set","auth"],"mappings":";;;;;;AAAA;;AACA;;;;;;;;AAEA;;;;AAIA,SAASA,kBAAT,GAA8B;AAC5B,SAAO,MAAM;AAAA,iCAAQ,WAAOC,GAAP,EAAYC,GAAZ,EAAiBC,IAAjB,EAA0B;AAC7C,UAAIF,IAAIG,OAAJ,CAAY,sBAAZ,MAAwC,MAA5C,EAAoD;AAClD,cAAM,IAAIC,iCAAJ,CAA0B,uBAA1B,CAAN;AACD;AACD,YAAMC,MAAMC,OAAOC,QAAP,CAAgBP,IAAIG,OAAJ,CAAY,sBAAZ,CAAhB,EAAqD,EAArD,CAAZ;AACA,YAAMK,SAASR,IAAIG,OAAJ,CAAY,4BAAZ,CAAf;AACA,UAAIE,MAAM,CAAV,EAAa;AACXJ,YAAIQ,GAAJ,CAAQ,OAAR,EAAiBJ,GAAjB;AACAJ,YAAIQ,GAAJ,CAAQ,UAAR,EAAoBD,MAApB;AACAR,YAAIU,IAAJ,GAAW;AACTL,aADS;AAETG;AAFS,SAAX;AAIA,eAAON,MAAP;AACD;AACD,YAAM,IAAIE,iCAAJ,CAA0B,oCAA1B,CAAN;AACD,KAhBY;;AAAA;AAAA;AAAA;AAAA,OAAb;AAiBD;;kBAEcL,kB","file":"auth_kong.js","sourcesContent":["import { UnauthorizedException } from '../exceptions';\nimport wrapper from '../utils/wrapper';\n\n/**\n * @returns {function()}\n * @constructor\n */\nfunction AuthKongMiddleware() {\n return () => wrapper(async (req, res, next) => {\n if (req.headers['x-anonymous-consumer'] === 'true') {\n throw new UnauthorizedException('Authentication failed');\n }\n const uid = Number.parseInt(req.headers['x-consumer-custom-id'], 10);\n const mobile = req.headers['x-consumer-custom-username'];\n if (uid > 0) {\n res.set('X-Uid', uid);\n res.set('X-Mobile', mobile);\n req.auth = {\n uid,\n mobile\n };\n return next();\n }\n throw new UnauthorizedException('Authentication failed, invalid UID');\n });\n}\n\nexport default AuthKongMiddleware;\n"]}
@@ -1,68 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _morgan = require('morgan');
8
-
9
- var _morgan2 = _interopRequireDefault(_morgan);
10
-
11
- var _os = require('os');
12
-
13
- var _os2 = _interopRequireDefault(_os);
14
-
15
- var _constitute = require('constitute');
16
-
17
- var _logger = require('../services/logger');
18
-
19
- var _logger2 = _interopRequireDefault(_logger);
20
-
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
-
23
- /**
24
- Log format:
25
- NCSA Combined Log Format + extended fields
26
-
27
- Nginx config as below
28
-
29
- log_format upstream '$http_x_forwarded_for - $remote_user [$time_local] '
30
- '"$request" $status $body_bytes_sent '
31
- '"$http_referer" "$http_user_agent" '
32
- '"$remote_addr" $host $request_time $upstream_response_time $scheme $server_port '
33
- '$hostname $upstream_addr $http_x_device_id $sent_http_x_uid $sent_http_x_token '
34
- '$sent_http_x_service_name $sent_http_x_b3_spanid $sent_http_x_b3_traceid '
35
- '$sent_http_x_b3_parentspanid $sent_http_x_b3_sampled';
36
- */
37
-
38
- _morgan2.default.token('host', req => req.headers.host);
39
-
40
- _morgan2.default.token('real-ip', req => req.headers['x-real-ip'] || req.headers['x-forwarded-for'] || req.ip || req.connection && req.connection.remoteAddress);
41
-
42
- _morgan2.default.token('port', req => req.headers.host && req.headers.host.split(':')[1] || -1);
43
-
44
- const hostname = _os2.default.hostname();
45
- _morgan2.default.token('hostname', () => hostname);
46
-
47
- _morgan2.default.token('tokens', (req, res) => [res.getHeader('X-Uid') || '-', res.getHeader('X-Token') || '-'].join(' '));
48
-
49
- _morgan2.default.token('tracer', (req, res) => [res.getHeader('X-Service-Name') || '-', res.getHeader('X-B3-SpanId') || '-', res.getHeader('X-B3-TraceId') || '-', res.getHeader('X-B3-ParentSpanId') || '-', res.getHeader('X-B3-Sampled') || '-'].join(' '));
50
-
51
- /**
52
- * @param logger {Logger}
53
- * @returns {function()}
54
- * @constructor
55
- */
56
- function DebugMiddleware(logger) {
57
- return () => (0, _morgan2.default)(':real-ip - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent" ' + '":remote-addr" :host :response-time - :http-version :port :hostname - :tokens :tracer %s', {
58
- stream: {
59
- write: message => {
60
- logger.info(message);
61
- }
62
- }
63
- });
64
- }
65
-
66
- (0, _constitute.Dependencies)(_logger2.default)(DebugMiddleware); //eslint-disable-line new-cap
67
- exports.default = DebugMiddleware;
68
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/debug.js"],"names":["morgan","token","req","headers","host","ip","connection","remoteAddress","split","hostname","os","res","getHeader","join","DebugMiddleware","logger","stream","write","message","info","Logger"],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;AACA;;;;;;AAEA;;;;;;;;;;;;;;;AAeAA,iBAAOC,KAAP,CACE,MADF,EAEEC,OACEA,IAAIC,OAAJ,CAAYC,IAHhB;;AAMAJ,iBAAOC,KAAP,CACE,SADF,EAEEC,OACEA,IAAIC,OAAJ,CAAY,WAAZ,KACAD,IAAIC,OAAJ,CAAY,iBAAZ,CADA,IAEAD,IAAIG,EAFJ,IAGCH,IAAII,UAAJ,IAAkBJ,IAAII,UAAJ,CAAeC,aANtC;;AASAP,iBAAOC,KAAP,CACE,MADF,EAEEC,OACGA,IAAIC,OAAJ,CAAYC,IAAZ,IAAoBF,IAAIC,OAAJ,CAAYC,IAAZ,CAAiBI,KAAjB,CAAuB,GAAvB,EAA4B,CAA5B,CAArB,IAAwD,CAAC,CAH7D;;AAMA,MAAMC,WAAWC,aAAGD,QAAH,EAAjB;AACAT,iBAAOC,KAAP,CAAa,UAAb,EAAyB,MAAMQ,QAA/B;;AAEAT,iBAAOC,KAAP,CACE,QADF,EAEE,CAACC,GAAD,EAAMS,GAAN,KACE,CACEA,IAAIC,SAAJ,CAAc,OAAd,KAA0B,GAD5B,EAEED,IAAIC,SAAJ,CAAc,SAAd,KAA4B,GAF9B,EAGEC,IAHF,CAGO,GAHP,CAHJ;;AASAb,iBAAOC,KAAP,CACE,QADF,EAEE,CAACC,GAAD,EAAMS,GAAN,KACE,CACEA,IAAIC,SAAJ,CAAc,gBAAd,KAAmC,GADrC,EAEED,IAAIC,SAAJ,CAAc,aAAd,KAAgC,GAFlC,EAGED,IAAIC,SAAJ,CAAc,cAAd,KAAiC,GAHnC,EAIED,IAAIC,SAAJ,CAAc,mBAAd,KAAsC,GAJxC,EAKED,IAAIC,SAAJ,CAAc,cAAd,KAAiC,GALnC,EAMEC,IANF,CAMO,GANP,CAHJ;;AAaA;;;;;AAKA,SAASC,eAAT,CAAyBC,MAAzB,EAAiC;AAC/B,SAAO,MACL,sBACE,mIACA,0FAFF,EAGE;AACEC,YAAQ;AACNC,aAAQC,OAAD,IAAa;AAClBH,eAAOI,IAAP,CAAYD,OAAZ;AACD;AAHK;AADV,GAHF,CADF;AAYD;;AAED,8BAAaE,gBAAb,EAAqBN,eAArB,E,CAAuC;kBACxBA,e","file":"debug.js","sourcesContent":["import morgan from 'morgan';\nimport os from 'os';\nimport { Dependencies } from 'constitute';\nimport Logger from '../services/logger';\n\n/**\n Log format:\n NCSA Combined Log Format + extended fields\n\n Nginx config as below\n\n log_format upstream '$http_x_forwarded_for - $remote_user [$time_local] '\n '\"$request\" $status $body_bytes_sent '\n '\"$http_referer\" \"$http_user_agent\" '\n '\"$remote_addr\" $host $request_time $upstream_response_time $scheme $server_port '\n '$hostname $upstream_addr $http_x_device_id $sent_http_x_uid $sent_http_x_token '\n '$sent_http_x_service_name $sent_http_x_b3_spanid $sent_http_x_b3_traceid '\n '$sent_http_x_b3_parentspanid $sent_http_x_b3_sampled';\n */\n\nmorgan.token(\n 'host',\n req =>\n req.headers.host\n);\n\nmorgan.token(\n 'real-ip',\n req =>\n req.headers['x-real-ip'] ||\n req.headers['x-forwarded-for'] ||\n req.ip ||\n (req.connection && req.connection.remoteAddress)\n);\n\nmorgan.token(\n 'port',\n req =>\n (req.headers.host && req.headers.host.split(':')[1]) || -1\n);\n\nconst hostname = os.hostname();\nmorgan.token('hostname', () => hostname);\n\nmorgan.token(\n 'tokens',\n (req, res) =>\n [\n res.getHeader('X-Uid') || '-',\n res.getHeader('X-Token') || '-'\n ].join(' ')\n);\n\nmorgan.token(\n 'tracer',\n (req, res) =>\n [\n res.getHeader('X-Service-Name') || '-',\n res.getHeader('X-B3-SpanId') || '-',\n res.getHeader('X-B3-TraceId') || '-',\n res.getHeader('X-B3-ParentSpanId') || '-',\n res.getHeader('X-B3-Sampled') || '-'\n ].join(' ')\n);\n\n\n/**\n * @param logger {Logger}\n * @returns {function()}\n * @constructor\n */\nfunction DebugMiddleware(logger) {\n return () =>\n morgan(\n ':real-ip - :remote-user [:date[clf]] \":method :url HTTP/:http-version\" :status :res[content-length] \":referrer\" \":user-agent\" ' +\n '\":remote-addr\" :host :response-time - :http-version :port :hostname - :tokens :tracer %s',\n {\n stream: {\n write: (message) => {\n logger.info(message);\n }\n }\n }\n );\n}\n\nDependencies(Logger)(DebugMiddleware); //eslint-disable-line new-cap\nexport default DebugMiddleware;\n"]}
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ValidatorMiddleware = exports.ViewCacheMiddleware = exports.TraceMiddleware = exports.SessionMiddleware = exports.DebugMiddleware = exports.AuthKongMiddleware = exports.AuthMiddleware = undefined;
7
-
8
- var _auth = require('./auth');
9
-
10
- var _auth2 = _interopRequireDefault(_auth);
11
-
12
- var _auth_kong = require('./auth_kong');
13
-
14
- var _auth_kong2 = _interopRequireDefault(_auth_kong);
15
-
16
- var _debug = require('./debug');
17
-
18
- var _debug2 = _interopRequireDefault(_debug);
19
-
20
- var _session = require('./session');
21
-
22
- var _session2 = _interopRequireDefault(_session);
23
-
24
- var _trace = require('./trace');
25
-
26
- var _trace2 = _interopRequireDefault(_trace);
27
-
28
- var _view_cache = require('./view_cache');
29
-
30
- var _view_cache2 = _interopRequireDefault(_view_cache);
31
-
32
- var _validator = require('./validator');
33
-
34
- var _validator2 = _interopRequireDefault(_validator);
35
-
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
- exports.AuthMiddleware = _auth2.default;
39
- exports.AuthKongMiddleware = _auth_kong2.default;
40
- exports.DebugMiddleware = _debug2.default;
41
- exports.SessionMiddleware = _session2.default;
42
- exports.TraceMiddleware = _trace2.default;
43
- exports.ViewCacheMiddleware = _view_cache2.default;
44
- exports.ValidatorMiddleware = _validator2.default;
45
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/index.js"],"names":["AuthMiddleware","AuthKongMiddleware","DebugMiddleware","SessionMiddleware","TraceMiddleware","ViewCacheMiddleware","ValidatorMiddleware"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;QAGEA,c,GAAAA,c;QACAC,kB,GAAAA,mB;QACAC,e,GAAAA,e;QACAC,iB,GAAAA,iB;QACAC,e,GAAAA,e;QACAC,mB,GAAAA,oB;QACAC,mB,GAAAA,mB","file":"index.js","sourcesContent":["import AuthMiddleware from './auth';\nimport AuthKongMiddleware from './auth_kong';\nimport DebugMiddleware from './debug';\nimport SessionMiddleware from './session';\nimport TraceMiddleware from './trace';\nimport ViewCacheMiddleware from './view_cache';\nimport ValidatorMiddleware from './validator';\n\nexport {\n AuthMiddleware,\n AuthKongMiddleware,\n DebugMiddleware,\n SessionMiddleware,\n TraceMiddleware,\n ViewCacheMiddleware,\n ValidatorMiddleware\n};\n\n"]}
@@ -1,102 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ValidatorMiddlewareProvider = exports.TraceMiddlewareProvider = exports.ViewCacheMiddlewareProvider = exports.DebugMiddlewareProvider = exports.AuthMiddlewareProvider = exports.SessionMiddlewareProvider = undefined;
7
-
8
- var _session = require('../middlewares/session');
9
-
10
- var _session2 = _interopRequireDefault(_session);
11
-
12
- var _auth = require('../middlewares/auth');
13
-
14
- var _auth2 = _interopRequireDefault(_auth);
15
-
16
- var _auth_kong = require('../middlewares/auth_kong');
17
-
18
- var _auth_kong2 = _interopRequireDefault(_auth_kong);
19
-
20
- var _debug = require('../middlewares/debug');
21
-
22
- var _debug2 = _interopRequireDefault(_debug);
23
-
24
- var _trace = require('../middlewares/trace');
25
-
26
- var _trace2 = _interopRequireDefault(_trace);
27
-
28
- var _view_cache = require('../middlewares/view_cache');
29
-
30
- var _view_cache2 = _interopRequireDefault(_view_cache);
31
-
32
- var _validator = require('../middlewares/validator');
33
-
34
- var _validator2 = _interopRequireDefault(_validator);
35
-
36
- var _di = require('../di');
37
-
38
- var _di2 = _interopRequireDefault(_di);
39
-
40
- var _providers = require('../services/providers');
41
-
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
-
44
- let SessionMiddlewareProvider = exports.SessionMiddlewareProvider = class SessionMiddlewareProvider extends _providers.ServiceProvider {
45
- get name() {
46
- return 'session';
47
- }
48
-
49
- register() {
50
- _di2.default.bindMethod(this.name, _session2.default);
51
- }
52
- };
53
- let AuthMiddlewareProvider = exports.AuthMiddlewareProvider = class AuthMiddlewareProvider extends _providers.ServiceProvider {
54
- get name() {
55
- return 'auth';
56
- }
57
-
58
- register() {
59
- if (_di2.default.get('config').get('token.provider') === 'kong') {
60
- _di2.default.bindMethod(this.name, _auth_kong2.default);
61
- } else {
62
- _di2.default.bindMethod(this.name, _auth2.default);
63
- }
64
- }
65
- };
66
- let DebugMiddlewareProvider = exports.DebugMiddlewareProvider = class DebugMiddlewareProvider extends _providers.ServiceProvider {
67
- get name() {
68
- return 'debug';
69
- }
70
-
71
- register() {
72
- _di2.default.bindMethod(this.name, _debug2.default);
73
- }
74
- };
75
- let ViewCacheMiddlewareProvider = exports.ViewCacheMiddlewareProvider = class ViewCacheMiddlewareProvider extends _providers.ServiceProvider {
76
- get name() {
77
- return 'view_cache';
78
- }
79
-
80
- register() {
81
- _di2.default.bindMethod(this.name, _view_cache2.default);
82
- }
83
- };
84
- let TraceMiddlewareProvider = exports.TraceMiddlewareProvider = class TraceMiddlewareProvider extends _providers.ServiceProvider {
85
- get name() {
86
- return 'trace';
87
- }
88
-
89
- register() {
90
- _di2.default.bindMethod(this.name, _trace2.default);
91
- }
92
- };
93
- let ValidatorMiddlewareProvider = exports.ValidatorMiddlewareProvider = class ValidatorMiddlewareProvider extends _providers.ServiceProvider {
94
- get name() {
95
- return 'validator';
96
- }
97
-
98
- register() {
99
- _di2.default.bindMethod(this.name, _validator2.default);
100
- }
101
- };
102
- //# sourceMappingURL=providers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/providers.js"],"names":["SessionMiddlewareProvider","ServiceProvider","name","register","DI","bindMethod","SessionMiddleware","AuthMiddlewareProvider","get","AuthKongMiddleware","AuthMiddleware","DebugMiddlewareProvider","DebugMiddleware","ViewCacheMiddlewareProvider","ViewCacheMiddleware","TraceMiddlewareProvider","TraceMiddleware","ValidatorMiddlewareProvider","ValidatorMiddleware"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEaA,yB,WAAAA,yB,GAAN,MAAMA,yBAAN,SAAwCC,0BAAxC,CAAwD;AAC7D,MAAIC,IAAJ,GAAW;AACT,WAAO,SAAP;AACD;;AAEDC,aAAW;AACTC,iBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBI,iBAAzB;AACD;AAP4D,C;IAUlDC,sB,WAAAA,sB,GAAN,MAAMA,sBAAN,SAAqCN,0BAArC,CAAqD;AAC1D,MAAIC,IAAJ,GAAW;AACT,WAAO,MAAP;AACD;;AAEDC,aAAW;AACT,QAAIC,aAAGI,GAAH,CAAO,QAAP,EAAiBA,GAAjB,CAAqB,gBAArB,MAA2C,MAA/C,EAAuD;AACrDJ,mBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBO,mBAAzB;AACD,KAFD,MAEO;AACLL,mBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBQ,cAAzB;AACD;AACF;AAXyD,C;IAc/CC,uB,WAAAA,uB,GAAN,MAAMA,uBAAN,SAAsCV,0BAAtC,CAAsD;AAC3D,MAAIC,IAAJ,GAAW;AACT,WAAO,OAAP;AACD;;AAEDC,aAAW;AACTC,iBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBU,eAAzB;AACD;AAP0D,C;IAUhDC,2B,WAAAA,2B,GAAN,MAAMA,2BAAN,SAA0CZ,0BAA1C,CAA0D;AAC/D,MAAIC,IAAJ,GAAW;AACT,WAAO,YAAP;AACD;;AAEDC,aAAW;AACTC,iBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBY,oBAAzB;AACD;AAP8D,C;IAUpDC,uB,WAAAA,uB,GAAN,MAAMA,uBAAN,SAAsCd,0BAAtC,CAAsD;AAC3D,MAAIC,IAAJ,GAAW;AACT,WAAO,OAAP;AACD;;AAEDC,aAAW;AACTC,iBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBc,eAAzB;AACD;AAP0D,C;IAUhDC,2B,WAAAA,2B,GAAN,MAAMA,2BAAN,SAA0ChB,0BAA1C,CAA0D;AAC/D,MAAIC,IAAJ,GAAW;AACT,WAAO,WAAP;AACD;;AAEDC,aAAW;AACTC,iBAAGC,UAAH,CAAc,KAAKH,IAAnB,EAAyBgB,mBAAzB;AACD;AAP8D,C","file":"providers.js","sourcesContent":["import SessionMiddleware from '../middlewares/session';\nimport AuthMiddleware from '../middlewares/auth';\nimport AuthKongMiddleware from '../middlewares/auth_kong';\nimport DebugMiddleware from '../middlewares/debug';\nimport TraceMiddleware from '../middlewares/trace';\nimport ViewCacheMiddleware from '../middlewares/view_cache';\nimport ValidatorMiddleware from '../middlewares/validator';\nimport DI from '../di';\nimport { ServiceProvider } from '../services/providers';\n\nexport class SessionMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'session';\n }\n\n register() {\n DI.bindMethod(this.name, SessionMiddleware);\n }\n}\n\nexport class AuthMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'auth';\n }\n\n register() {\n if (DI.get('config').get('token.provider') === 'kong') {\n DI.bindMethod(this.name, AuthKongMiddleware);\n } else {\n DI.bindMethod(this.name, AuthMiddleware);\n }\n }\n}\n\nexport class DebugMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'debug';\n }\n\n register() {\n DI.bindMethod(this.name, DebugMiddleware);\n }\n}\n\nexport class ViewCacheMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'view_cache';\n }\n\n register() {\n DI.bindMethod(this.name, ViewCacheMiddleware);\n }\n}\n\nexport class TraceMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'trace';\n }\n\n register() {\n DI.bindMethod(this.name, TraceMiddleware);\n }\n}\n\nexport class ValidatorMiddlewareProvider extends ServiceProvider {\n get name() {\n return 'validator';\n }\n\n register() {\n DI.bindMethod(this.name, ValidatorMiddleware);\n }\n}\n"]}