evaengine 0.11.1 → 1.0.0

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 (105) 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/index.js +57 -0
  11. package/bin/engine-babel +0 -38
  12. package/lib/commands/index.js +0 -25
  13. package/lib/commands/index.js.map +0 -1
  14. package/lib/commands/interface.js +0 -51
  15. package/lib/commands/interface.js.map +0 -1
  16. package/lib/commands/make_entity.js +0 -549
  17. package/lib/commands/make_entity.js.map +0 -1
  18. package/lib/commands/tramp.js +0 -53
  19. package/lib/commands/tramp.js.map +0 -1
  20. package/lib/config/index.js +0 -98
  21. package/lib/config/index.js.map +0 -1
  22. package/lib/di.js +0 -99
  23. package/lib/di.js.map +0 -1
  24. package/lib/engine.js +0 -558
  25. package/lib/engine.js.map +0 -1
  26. package/lib/entities/index.js +0 -283
  27. package/lib/entities/index.js.map +0 -1
  28. package/lib/exceptions/index.js +0 -522
  29. package/lib/exceptions/index.js.map +0 -1
  30. package/lib/index.js +0 -105
  31. package/lib/index.js.map +0 -1
  32. package/lib/middlewares/auth.js +0 -97
  33. package/lib/middlewares/auth.js.map +0 -1
  34. package/lib/middlewares/auth_kong.js +0 -48
  35. package/lib/middlewares/auth_kong.js.map +0 -1
  36. package/lib/middlewares/debug.js +0 -68
  37. package/lib/middlewares/debug.js.map +0 -1
  38. package/lib/middlewares/index.js +0 -45
  39. package/lib/middlewares/index.js.map +0 -1
  40. package/lib/middlewares/providers.js +0 -102
  41. package/lib/middlewares/providers.js.map +0 -1
  42. package/lib/middlewares/session.js +0 -76
  43. package/lib/middlewares/session.js.map +0 -1
  44. package/lib/middlewares/trace.js +0 -241
  45. package/lib/middlewares/trace.js.map +0 -1
  46. package/lib/middlewares/validator.js +0 -71
  47. package/lib/middlewares/validator.js.map +0 -1
  48. package/lib/middlewares/view_cache.js +0 -160
  49. package/lib/middlewares/view_cache.js.map +0 -1
  50. package/lib/services/cache.js +0 -234
  51. package/lib/services/cache.js.map +0 -1
  52. package/lib/services/config.js +0 -140
  53. package/lib/services/config.js.map +0 -1
  54. package/lib/services/env.js +0 -40
  55. package/lib/services/env.js.map +0 -1
  56. package/lib/services/event_manager.js +0 -110
  57. package/lib/services/event_manager.js.map +0 -1
  58. package/lib/services/http_client.js +0 -178
  59. package/lib/services/http_client.js.map +0 -1
  60. package/lib/services/index.js +0 -70
  61. package/lib/services/index.js.map +0 -1
  62. package/lib/services/interface.js +0 -12
  63. package/lib/services/interface.js.map +0 -1
  64. package/lib/services/joi.js +0 -28
  65. package/lib/services/joi.js.map +0 -1
  66. package/lib/services/jwt_token.js +0 -120
  67. package/lib/services/jwt_token.js.map +0 -1
  68. package/lib/services/jwt_token_kong.js +0 -111
  69. package/lib/services/jwt_token_kong.js.map +0 -1
  70. package/lib/services/logger.js +0 -172
  71. package/lib/services/logger.js.map +0 -1
  72. package/lib/services/namespace.js +0 -188
  73. package/lib/services/namespace.js.map +0 -1
  74. package/lib/services/now.js +0 -69
  75. package/lib/services/now.js.map +0 -1
  76. package/lib/services/providers.js +0 -195
  77. package/lib/services/providers.js.map +0 -1
  78. package/lib/services/redis.js +0 -77
  79. package/lib/services/redis.js.map +0 -1
  80. package/lib/services/rest_client.js +0 -136
  81. package/lib/services/rest_client.js.map +0 -1
  82. package/lib/swagger/index.js +0 -684
  83. package/lib/swagger/index.js.map +0 -1
  84. package/lib/utils/api_scaffold.js +0 -253
  85. package/lib/utils/api_scaffold.js.map +0 -1
  86. package/lib/utils/case_converter.js +0 -48
  87. package/lib/utils/case_converter.js.map +0 -1
  88. package/lib/utils/crc32.js +0 -22
  89. package/lib/utils/crc32.js.map +0 -1
  90. package/lib/utils/datetime.js +0 -21
  91. package/lib/utils/datetime.js.map +0 -1
  92. package/lib/utils/host.js +0 -48
  93. package/lib/utils/host.js.map +0 -1
  94. package/lib/utils/index.js +0 -61
  95. package/lib/utils/index.js.map +0 -1
  96. package/lib/utils/pagination.js +0 -269
  97. package/lib/utils/pagination.js.map +0 -1
  98. package/lib/utils/random.js +0 -33
  99. package/lib/utils/random.js.map +0 -1
  100. package/lib/utils/smart_query.js +0 -342
  101. package/lib/utils/smart_query.js.map +0 -1
  102. package/lib/utils/test.js +0 -62
  103. package/lib/utils/test.js.map +0 -1
  104. package/lib/utils/wrapper.js +0 -9
  105. package/lib/utils/wrapper.js.map +0 -1
@@ -1,77 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = undefined;
7
-
8
- var _dec, _class;
9
-
10
- var _ioredis = require('ioredis');
11
-
12
- var _ioredis2 = _interopRequireDefault(_ioredis);
13
-
14
- var _constitute = require('constitute');
15
-
16
- var _config = require('./config');
17
-
18
- var _config2 = _interopRequireDefault(_config);
19
-
20
- var _interface = require('./interface');
21
-
22
- var _interface2 = _interopRequireDefault(_interface);
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- let redisClient = null;
27
-
28
- //eslint-disable-line new-cap
29
- let Redis = (_dec = (0, _constitute.Dependencies)(_config2.default), _dec(_class = class Redis extends _interface2.default {
30
- /**
31
- * @param config Config
32
- */
33
- constructor(config) {
34
- super();
35
- this.config = config;
36
- this.options = null;
37
- }
38
-
39
- getProto() {
40
- return _ioredis2.default;
41
- }
42
-
43
- getRedis() {
44
- return _ioredis2.default;
45
- }
46
-
47
- setOptions(options) {
48
- this.options = options;
49
- return this;
50
- }
51
-
52
- isConnected() {
53
- return redisClient !== null;
54
- }
55
-
56
- cleanup() {
57
- return this.getInstance().end();
58
- }
59
-
60
- /**
61
- * @returns {Ioredis}
62
- */
63
- getInstance() {
64
- if (redisClient) {
65
- return redisClient;
66
- }
67
- redisClient = new _ioredis2.default(Object.assign({
68
- enableOfflineQueue: true //make redis connect failings throw error
69
- }, this.options || this.config.get('redis')));
70
- redisClient.on('error', e => {
71
- throw e;
72
- });
73
- return redisClient;
74
- }
75
- }) || _class);
76
- exports.default = Redis;
77
- //# sourceMappingURL=redis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/redis.js"],"names":["redisClient","Redis","Config","ServiceInterface","constructor","config","options","getProto","Ioredis","getRedis","setOptions","isConnected","cleanup","getInstance","end","Object","assign","enableOfflineQueue","get","on","e"],"mappings":";;;;;;;;;AAAA;;;;AACA;;AACA;;;;AACA;;;;;;AAEA,IAAIA,cAAc,IAAlB;;AAEsB;IACDC,K,WADpB,8BAAaC,gBAAb,C,gBACc,MAAMD,KAAN,SAAoBE,mBAApB,CAAqC;AAClD;;;AAGAC,cAAYC,MAAZ,EAAoB;AAClB;AACA,SAAKA,MAAL,GAAcA,MAAd;AACA,SAAKC,OAAL,GAAe,IAAf;AACD;;AAEDC,aAAW;AACT,WAAOC,iBAAP;AACD;;AAEDC,aAAW;AACT,WAAOD,iBAAP;AACD;;AAEDE,aAAWJ,OAAX,EAAoB;AAClB,SAAKA,OAAL,GAAeA,OAAf;AACA,WAAO,IAAP;AACD;;AAEDK,gBAAc;AACZ,WAAOX,gBAAgB,IAAvB;AACD;;AAEDY,YAAU;AACR,WAAO,KAAKC,WAAL,GAAmBC,GAAnB,EAAP;AACD;;AAED;;;AAGAD,gBAAc;AACZ,QAAIb,WAAJ,EAAiB;AACf,aAAOA,WAAP;AACD;AACDA,kBAAc,IAAIQ,iBAAJ,CAAYO,OAAOC,MAAP,CAAc;AACtCC,0BAAoB,IADkB,CACb;AADa,KAAd,EAEvB,KAAKX,OAAL,IAAgB,KAAKD,MAAL,CAAYa,GAAZ,CAAgB,OAAhB,CAFO,CAAZ,CAAd;AAGAlB,gBAAYmB,EAAZ,CAAe,OAAf,EAAyBC,CAAD,IAAO;AAC7B,YAAMA,CAAN;AACD,KAFD;AAGA,WAAOpB,WAAP;AACD;AA7CiD,C;kBAA/BC,K","file":"redis.js","sourcesContent":["import Ioredis from 'ioredis';\nimport { Dependencies } from 'constitute';\nimport Config from './config';\nimport ServiceInterface from './interface';\n\nlet redisClient = null;\n\n@Dependencies(Config) //eslint-disable-line new-cap\nexport default class Redis extends ServiceInterface {\n /**\n * @param config Config\n */\n constructor(config) {\n super();\n this.config = config;\n this.options = null;\n }\n\n getProto() {\n return Ioredis;\n }\n\n getRedis() {\n return Ioredis;\n }\n\n setOptions(options) {\n this.options = options;\n return this;\n }\n\n isConnected() {\n return redisClient !== null;\n }\n\n cleanup() {\n return this.getInstance().end();\n }\n\n /**\n * @returns {Ioredis}\n */\n getInstance() {\n if (redisClient) {\n return redisClient;\n }\n redisClient = new Ioredis(Object.assign({\n enableOfflineQueue: true //make redis connect failings throw error\n }, this.options || this.config.get('redis')));\n redisClient.on('error', (e) => {\n throw e;\n });\n return redisClient;\n }\n}\n\n"]}
@@ -1,136 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = undefined;
7
-
8
- var _dec, _class;
9
-
10
- var _constitute = require('constitute');
11
-
12
- var _http_client = require('./http_client');
13
-
14
- var _http_client2 = _interopRequireDefault(_http_client);
15
-
16
- var _namespace = require('./namespace');
17
-
18
- var _namespace2 = _interopRequireDefault(_namespace);
19
-
20
- var _exceptions = require('../exceptions');
21
-
22
- var _interface = require('./interface');
23
-
24
- var _interface2 = _interopRequireDefault(_interface);
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- 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"); }); }; }
29
-
30
- //eslint-disable-line new-cap
31
- let RestClient = (_dec = (0, _constitute.Dependencies)(_http_client2.default, _namespace2.default), _dec(_class = class RestClient extends _interface2.default {
32
- /**
33
- * @param {HttpClient} client
34
- * @param {Namespace} ns
35
- */
36
- constructor(client, ns) {
37
- super();
38
- this.client = client;
39
- this.ns = ns;
40
- this.baseUrl = null;
41
- }
42
-
43
- setBaseUrl(baseUrl) {
44
- this.baseUrl = baseUrl;
45
- return this;
46
- }
47
-
48
- getBaseUrl() {
49
- return this.baseUrl;
50
- }
51
-
52
- getProto() {
53
- return this.client.getProto();
54
- }
55
-
56
- getInstance() {
57
- return this.client.getInstance();
58
- }
59
-
60
- populateTrace(params) {
61
- const {
62
- traceId, spanId, sampled
63
- } = this.ns.get('tracer') || {};
64
- if (!traceId || !spanId) {
65
- return params;
66
- }
67
-
68
- if (!params.headers) {
69
- Object.assign(params, { headers: {} });
70
- }
71
- Object.assign(params.headers, {
72
- 'X-B3-TraceId': traceId,
73
- 'X-B3-SpanId': spanId,
74
- 'X-B3-Sampled': sampled
75
- });
76
- return params;
77
- }
78
-
79
- saveToTracer(headers) {
80
- if (!headers || Object.keys(headers).length < 1) {
81
- return;
82
- }
83
-
84
- const tracer = this.ns.get('tracer');
85
- if (!tracer) {
86
- return;
87
- }
88
- Object.entries(headers).forEach(([key, value]) => {
89
- if (key.startsWith('x-debug-')) {
90
- tracer.debug[key] = value;
91
- }
92
- });
93
- }
94
-
95
- rawRequest(params) {
96
- if (this.baseUrl) {
97
- Object.assign(params, { url: this.baseUrl + (params.url || params.uri) });
98
- if (params.uri) {
99
- delete params.uri; //eslint-disable-line no-param-reassign
100
- }
101
- }
102
- return this.client.getInstance()(this.populateTrace(params));
103
- }
104
-
105
- request(params) {
106
- var _this = this;
107
-
108
- return _asyncToGenerator(function* () {
109
- if (_this.baseUrl) {
110
- Object.assign(params, {
111
- url: _this.baseUrl + (params.url || params.uri)
112
- });
113
- if (params.uri) {
114
- delete params.uri; //eslint-disable-line no-param-reassign
115
- }
116
- }
117
- try {
118
- const { headers, body } = yield _this.client.getInstance()(Object.assign(_this.populateTrace(params), {
119
- json: true,
120
- resolveWithFullResponse: true
121
- }));
122
- _this.saveToTracer(headers);
123
- return body;
124
- } catch (e) {
125
- //FIXME TypeError无法被记录?
126
- const { statusCode } = e;
127
- if (statusCode && statusCode >= 400 && statusCode < 500) {
128
- throw new _exceptions.RestServiceLogicException(e);
129
- }
130
- throw new _exceptions.RestServiceIOException(e);
131
- }
132
- })();
133
- }
134
- }) || _class);
135
- exports.default = RestClient;
136
- //# sourceMappingURL=rest_client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/rest_client.js"],"names":["RestClient","HttpClient","Namespace","ServiceInterface","constructor","client","ns","baseUrl","setBaseUrl","getBaseUrl","getProto","getInstance","populateTrace","params","traceId","spanId","sampled","get","headers","Object","assign","saveToTracer","keys","length","tracer","entries","forEach","key","value","startsWith","debug","rawRequest","url","uri","request","body","json","resolveWithFullResponse","e","statusCode","RestServiceLogicException","RestServiceIOException"],"mappings":"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","file":"rest_client.js","sourcesContent":["import { Dependencies } from 'constitute';\nimport HttpClient from './http_client';\nimport Namespace from './namespace';\nimport { RestServiceLogicException, RestServiceIOException } from '../exceptions';\nimport ServiceInterface from './interface';\n\n@Dependencies(HttpClient, Namespace) //eslint-disable-line new-cap\nexport default class RestClient extends ServiceInterface {\n /**\n * @param {HttpClient} client\n * @param {Namespace} ns\n */\n constructor(client, ns) {\n super();\n this.client = client;\n this.ns = ns;\n this.baseUrl = null;\n }\n\n setBaseUrl(baseUrl) {\n this.baseUrl = baseUrl;\n return this;\n }\n\n getBaseUrl() {\n return this.baseUrl;\n }\n\n getProto() {\n return this.client.getProto();\n }\n\n getInstance() {\n return this.client.getInstance();\n }\n\n populateTrace(params) {\n const {\n traceId, spanId, sampled\n } = this.ns.get('tracer') || {};\n if (!traceId || !spanId) {\n return params;\n }\n\n if (!params.headers) {\n Object.assign(params, { headers: {} });\n }\n Object.assign(params.headers, {\n 'X-B3-TraceId': traceId,\n 'X-B3-SpanId': spanId,\n 'X-B3-Sampled': sampled\n });\n return params;\n }\n\n saveToTracer(headers) {\n if (!headers || Object.keys(headers).length < 1) {\n return;\n }\n\n const tracer = this.ns.get('tracer');\n if (!tracer) {\n return;\n }\n Object.entries(headers).forEach(([key, value]) => {\n if (key.startsWith('x-debug-')) {\n tracer.debug[key] = value;\n }\n });\n }\n\n rawRequest(params) {\n if (this.baseUrl) {\n Object.assign(params, { url: this.baseUrl + (params.url || params.uri) });\n if (params.uri) {\n delete params.uri; //eslint-disable-line no-param-reassign\n }\n }\n return this.client.getInstance()(this.populateTrace(params));\n }\n\n async request(params) {\n if (this.baseUrl) {\n Object.assign(params, {\n url: this.baseUrl + (params.url || params.uri)\n });\n if (params.uri) {\n delete params.uri; //eslint-disable-line no-param-reassign\n }\n }\n try {\n const { headers, body } = await this.client.getInstance()(Object.assign(\n this.populateTrace(params),\n {\n json: true,\n resolveWithFullResponse: true\n }\n ));\n this.saveToTracer(headers);\n return body;\n } catch (e) {\n //FIXME TypeError无法被记录?\n const { statusCode } = e;\n if (statusCode && statusCode >= 400 && statusCode < 500) {\n throw new RestServiceLogicException(e);\n }\n throw new RestServiceIOException(e);\n }\n }\n}\n"]}