evaengine 0.11.2 → 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,178 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.requestDebug = exports.deepClone = undefined;
7
-
8
- var _dec, _class;
9
-
10
- var _constitute = require('constitute');
11
-
12
- var _requestPromiseNative = require('request-promise-native');
13
-
14
- var _requestPromiseNative2 = _interopRequireDefault(_requestPromiseNative);
15
-
16
- var _config = require('./config');
17
-
18
- var _config2 = _interopRequireDefault(_config);
19
-
20
- var _logger = require('./logger');
21
-
22
- var _logger2 = _interopRequireDefault(_logger);
23
-
24
- var _exceptions = require('../exceptions');
25
-
26
- var _interface = require('./interface');
27
-
28
- var _interface2 = _interopRequireDefault(_interface);
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- 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"); }); }; }
33
-
34
- const deepClone = exports.deepClone = obj => JSON.parse(JSON.stringify(obj));
35
-
36
- const TOO_LONG_BODY = '____TLDR____';
37
-
38
- let debugFlag = false;
39
- /* eslint-disable */
40
- //Mod version of https://github.com/request/request-debug
41
- const requestDebug = exports.requestDebug = (logger, maxBodyLength = process.env.MAX_REQUEST_DEBUG_BODY || 3000) => {
42
- if (debugFlag === true) {
43
- return;
44
- }
45
-
46
- let proto = {};
47
- let debugId = 0;
48
- if (_requestPromiseNative2.default.Request) {
49
- proto = _requestPromiseNative2.default.Request.prototype;
50
- } else if (_requestPromiseNative2.default.get && _requestPromiseNative2.default.post) {
51
- // The object returned by request.defaults() doesn't include the
52
- // Request property, so do this horrible thing to get at it. Per
53
- // Wikipedia, port 4 is unassigned.
54
- const req = (0, _requestPromiseNative2.default)('http://localhost:4').on('error', () => {});
55
- proto = req.constructor.prototype;
56
- } else {
57
- throw new Error('Pass the object returned by require("request") to this function.');
58
- }
59
- if (proto._initBeforeDebug) {
60
- return;
61
- }
62
-
63
- proto._initBeforeDebug = proto.init;
64
-
65
- const ignoreDebug = headers => {
66
- if (!headers || Object.keys(headers).length < 1) {
67
- return {};
68
- }
69
- return Object.keys(headers).filter(key => !key.startsWith('x-debug')).reduce((res, key) => (res[key] = headers[key], res), {});
70
- };
71
-
72
- proto.init = function () {
73
- if (this._debugId) {
74
- return;
75
- }
76
- this.on('request', function (req) {
77
- const data = {
78
- headers: deepClone(this.headers)
79
- };
80
- if (this.body) {
81
- data.body = maxBodyLength > 0 && this.body.toString().length < maxBodyLength ? this.body.toString('utf8') : TOO_LONG_BODY;
82
- }
83
-
84
- logger.verbose('[HTTP_REQUEST_%s] [%s %s] [REQ_HEADERS: %s] [REQ_BODY: %s]', this._debugId, this.method.toUpperCase(), this.uri.href, JSON.stringify(data.headers), data.body || '');
85
- }).on('response', function (res) {
86
- if (this.callback) {
87
- return;
88
- }
89
-
90
- const bodyLength = res.headers['content-length'] || (res.body ? res.body.toString().length : 0);
91
- logger.verbose('[HTTP_RESPONSE_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId, this.method.toUpperCase(), this.uri.href, res.statusCode, JSON.stringify(ignoreDebug(res.headers)), bodyLength > maxBodyLength ? TOO_LONG_BODY : res.body || '');
92
- }).on('complete', function (res) {
93
- if (!this.callback) {
94
- return;
95
- }
96
-
97
- const bodyLength = res.headers['content-length'] || (res.body ? res.body.toString().length : 0);
98
- logger.verbose('[HTTP_RESPONSE_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId, this.method.toUpperCase(), this.uri.href, res.statusCode, JSON.stringify(ignoreDebug(res.headers)), bodyLength > maxBodyLength ? TOO_LONG_BODY : res.body || '');
99
- }).on('redirect', function () {
100
-
101
- logger.verbose('[HTTP_REDIRECT_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId, this.method.toUpperCase(), this.uri.href, this.response.statusCode, JSON.stringify(ignoreDebug(this.response.headers)), '');
102
- });
103
- this._debugId = ++debugId;
104
- return proto._initBeforeDebug.apply(this, arguments);
105
- };
106
-
107
- debugFlag = true;
108
- };
109
- /* eslint-enable */
110
-
111
- //eslint-disable-line new-cap
112
- let HttpClient = (_dec = (0, _constitute.Dependencies)(_config2.default, _logger2.default), _dec(_class = class HttpClient extends _interface2.default {
113
- /**
114
- * @param config {Config}
115
- * @param logger {Logger}
116
- */
117
- constructor(config, logger) {
118
- super();
119
- this.config = config.get();
120
- this.client = _requestPromiseNative2.default;
121
- requestDebug(logger);
122
- }
123
-
124
- getProto() {
125
- return _requestPromiseNative2.default;
126
- }
127
-
128
- getInstance() {
129
- return this.client;
130
- }
131
-
132
- request(params) {
133
- var _this = this;
134
-
135
- return _asyncToGenerator(function* () {
136
- try {
137
- return yield _this.client(params);
138
- } catch (e) {
139
- const { statusCode } = e;
140
- if (statusCode && statusCode >= 400 && statusCode < 500) {
141
- throw new _exceptions.HttpRequestLogicException(e);
142
- }
143
- throw new _exceptions.HttpRequestIOException(e);
144
- }
145
- })();
146
- }
147
-
148
- dumpRequest(req, asString = false) {
149
- const getBody = r => {
150
- if (r._json) {
151
- //eslint-disable-line no-underscore-dangle
152
- return r.body;
153
- }
154
- return r.form(r.formData).body;
155
- };
156
- const dump = {
157
- method: req.method,
158
- protocol: req.uri && req.uri.protocol === 'https:' ? 'https' : 'http',
159
- url: req.uri ? req.uri.href : null,
160
- headers: req.headers,
161
- body: req.req && (req._json || req.formData) //eslint-disable-line no-underscore-dangle
162
- ? getBody(req) : null
163
- };
164
- return asString === true ? JSON.stringify(dump) : dump;
165
- }
166
-
167
- dumpResponse(res, asString = false) {
168
- const dump = {
169
- statusCode: res.statusCode,
170
- statusMessage: res.statusMessage,
171
- headers: res.headers,
172
- body: res.body
173
- };
174
- return asString === true ? JSON.stringify(dump) : dump;
175
- }
176
- }) || _class);
177
- exports.default = HttpClient;
178
- //# sourceMappingURL=http_client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/http_client.js"],"names":["deepClone","obj","JSON","parse","stringify","TOO_LONG_BODY","debugFlag","requestDebug","logger","maxBodyLength","process","env","MAX_REQUEST_DEBUG_BODY","proto","debugId","request","Request","prototype","get","post","req","on","constructor","Error","_initBeforeDebug","init","ignoreDebug","headers","Object","keys","length","filter","key","startsWith","reduce","res","_debugId","data","body","toString","verbose","method","toUpperCase","uri","href","callback","bodyLength","statusCode","response","apply","arguments","HttpClient","Config","Logger","ServiceInterface","config","client","getProto","getInstance","params","e","HttpRequestLogicException","HttpRequestIOException","dumpRequest","asString","getBody","r","_json","form","formData","dump","protocol","url","dumpResponse","statusMessage"],"mappings":"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","file":"http_client.js","sourcesContent":["import { Dependencies } from 'constitute';\nimport request from 'request-promise-native';\nimport Config from './config';\nimport Logger from './logger';\nimport { HttpRequestLogicException, HttpRequestIOException } from '../exceptions';\nimport ServiceInterface from './interface';\n\nexport const deepClone = obj =>\n JSON.parse(JSON.stringify(obj));\n\nconst TOO_LONG_BODY = '____TLDR____';\n\nlet debugFlag = false;\n/* eslint-disable */\n//Mod version of https://github.com/request/request-debug\nexport const requestDebug = (logger, maxBodyLength = process.env.MAX_REQUEST_DEBUG_BODY || 3000) => {\n if (debugFlag === true) {\n return;\n }\n\n let proto = {};\n let debugId = 0;\n if (request.Request) {\n proto = request.Request.prototype;\n } else if (request.get && request.post) {\n // The object returned by request.defaults() doesn't include the\n // Request property, so do this horrible thing to get at it. Per\n // Wikipedia, port 4 is unassigned.\n const req = request('http://localhost:4').on('error', () => {\n });\n proto = req.constructor.prototype;\n } else {\n throw new Error('Pass the object returned by require(\"request\") to this function.');\n }\n if (proto._initBeforeDebug) {\n return;\n }\n\n proto._initBeforeDebug = proto.init;\n\n const ignoreDebug = (headers) => {\n if (!headers || Object.keys(headers).length < 1) {\n return {};\n }\n return Object.keys(headers)\n .filter(key => !key.startsWith('x-debug'))\n .reduce((res, key) => (res[key] = headers[key], res), {});\n };\n\n proto.init = function () {\n if (this._debugId) {\n return;\n }\n this.on('request', function (req) {\n const data = {\n headers: deepClone(this.headers)\n };\n if (this.body) {\n data.body = maxBodyLength > 0 && this.body.toString().length < maxBodyLength ? this.body.toString('utf8') : TOO_LONG_BODY;\n }\n\n logger.verbose('[HTTP_REQUEST_%s] [%s %s] [REQ_HEADERS: %s] [REQ_BODY: %s]', this._debugId,\n this.method.toUpperCase(), this.uri.href, JSON.stringify(data.headers), data.body || ''\n );\n }).on('response', function (res) {\n if (this.callback) {\n return;\n }\n\n const bodyLength = res.headers['content-length'] || (res.body ? res.body.toString().length : 0);\n logger.verbose('[HTTP_RESPONSE_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId,\n this.method.toUpperCase(), this.uri.href, res.statusCode, JSON.stringify(ignoreDebug(res.headers)),\n bodyLength > maxBodyLength ? TOO_LONG_BODY : res.body || ''\n );\n }).on('complete', function (res) {\n if (!this.callback) {\n return;\n }\n\n const bodyLength = res.headers['content-length'] || (res.body ? res.body.toString().length : 0);\n logger.verbose('[HTTP_RESPONSE_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId,\n this.method.toUpperCase(), this.uri.href, res.statusCode, JSON.stringify(ignoreDebug(res.headers)),\n bodyLength > maxBodyLength ? TOO_LONG_BODY : res.body || ''\n );\n }).on('redirect', function () {\n\n logger.verbose('[HTTP_REDIRECT_%s] [%s %s] [%s] [RES_HEADERS: %s] [RES_BODY: %s]', this._debugId,\n this.method.toUpperCase(), this.uri.href, this.response.statusCode, JSON.stringify(ignoreDebug(this.response.headers)), '');\n });\n this._debugId = ++debugId;\n return proto._initBeforeDebug.apply(this, arguments);\n };\n\n debugFlag = true;\n};\n/* eslint-enable */\n\n@Dependencies(Config, Logger) //eslint-disable-line new-cap\nexport default class HttpClient extends ServiceInterface {\n /**\n * @param config {Config}\n * @param logger {Logger}\n */\n constructor(config, logger) {\n super();\n this.config = config.get();\n this.client = request;\n requestDebug(logger);\n }\n\n getProto() {\n return request;\n }\n\n getInstance() {\n return this.client;\n }\n\n async request(params) {\n try {\n return await this.client(params);\n } catch (e) {\n const { statusCode } = e;\n if (statusCode && statusCode >= 400 && statusCode < 500) {\n throw new HttpRequestLogicException(e);\n }\n throw new HttpRequestIOException(e);\n }\n }\n\n dumpRequest(req, asString = false) {\n const getBody = (r) => {\n if (r._json) { //eslint-disable-line no-underscore-dangle\n return r.body;\n }\n return r.form(r.formData).body;\n };\n const dump = {\n method: req.method,\n protocol: req.uri && req.uri.protocol === 'https:' ? 'https' : 'http',\n url: req.uri ? req.uri.href : null,\n headers: req.headers,\n body: req.req && (req._json || req.formData) //eslint-disable-line no-underscore-dangle\n ? getBody(req) : null\n };\n return asString === true ? JSON.stringify(dump) : dump;\n }\n\n dumpResponse(res, asString = false) {\n const dump = {\n statusCode: res.statusCode,\n statusMessage: res.statusMessage,\n headers: res.headers,\n body: res.body\n };\n return asString === true ? JSON.stringify(dump) : dump;\n }\n}\n"]}
@@ -1,70 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EventManager = exports.ValidatorBase = exports.Now = exports.Namespace = exports.RestClient = exports.Redis = exports.Logger = exports.JsonWebToken = exports.HttpClient = exports.Env = exports.Config = exports.Cache = undefined;
7
-
8
- var _cache = require('./cache');
9
-
10
- var _cache2 = _interopRequireDefault(_cache);
11
-
12
- var _config = require('./config');
13
-
14
- var _config2 = _interopRequireDefault(_config);
15
-
16
- var _env = require('./env');
17
-
18
- var _env2 = _interopRequireDefault(_env);
19
-
20
- var _http_client = require('./http_client');
21
-
22
- var _http_client2 = _interopRequireDefault(_http_client);
23
-
24
- var _jwt_token = require('./jwt_token');
25
-
26
- var _jwt_token2 = _interopRequireDefault(_jwt_token);
27
-
28
- var _logger = require('./logger');
29
-
30
- var _logger2 = _interopRequireDefault(_logger);
31
-
32
- var _redis = require('./redis');
33
-
34
- var _redis2 = _interopRequireDefault(_redis);
35
-
36
- var _rest_client = require('./rest_client');
37
-
38
- var _rest_client2 = _interopRequireDefault(_rest_client);
39
-
40
- var _namespace = require('./namespace');
41
-
42
- var _namespace2 = _interopRequireDefault(_namespace);
43
-
44
- var _now = require('./now');
45
-
46
- var _now2 = _interopRequireDefault(_now);
47
-
48
- var _joi = require('./joi');
49
-
50
- var _joi2 = _interopRequireDefault(_joi);
51
-
52
- var _event_manager = require('./event_manager');
53
-
54
- var _event_manager2 = _interopRequireDefault(_event_manager);
55
-
56
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
57
-
58
- exports.Cache = _cache2.default;
59
- exports.Config = _config2.default;
60
- exports.Env = _env2.default;
61
- exports.HttpClient = _http_client2.default;
62
- exports.JsonWebToken = _jwt_token2.default;
63
- exports.Logger = _logger2.default;
64
- exports.Redis = _redis2.default;
65
- exports.RestClient = _rest_client2.default;
66
- exports.Namespace = _namespace2.default;
67
- exports.Now = _now2.default;
68
- exports.ValidatorBase = _joi2.default;
69
- exports.EventManager = _event_manager2.default;
70
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/index.js"],"names":["Cache","Config","Env","HttpClient","JsonWebToken","Logger","Redis","RestClient","Namespace","Now","ValidatorBase","EventManager"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;QAGEA,K,GAAAA,e;QACAC,M,GAAAA,gB;QACAC,G,GAAAA,a;QACAC,U,GAAAA,qB;QACAC,Y,GAAAA,mB;QACAC,M,GAAAA,gB;QACAC,K,GAAAA,e;QACAC,U,GAAAA,qB;QACAC,S,GAAAA,mB;QACAC,G,GAAAA,a;QACAC,a,GAAAA,a;QACAC,Y,GAAAA,uB","file":"index.js","sourcesContent":["import Cache from './cache';\nimport Config from './config';\nimport Env from './env';\nimport HttpClient from './http_client';\nimport JsonWebToken from './jwt_token';\nimport Logger from './logger';\nimport Redis from './redis';\nimport RestClient from './rest_client';\nimport Namespace from './namespace';\nimport Now from './now';\nimport ValidatorBase from './joi';\nimport EventManager from './event_manager';\n\nexport {\n Cache,\n Config,\n Env,\n HttpClient,\n JsonWebToken,\n Logger,\n Redis,\n RestClient,\n Namespace,\n Now,\n ValidatorBase,\n EventManager\n};\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- let ServiceInterface = class ServiceInterface {
7
- getProto() {
8
- return {};
9
- }
10
- };
11
- exports.default = ServiceInterface;
12
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/interface.js"],"names":["ServiceInterface","getProto"],"mappings":";;;;;IAAqBA,gB,GAAN,MAAMA,gBAAN,CAAuB;AACpCC,aAAW;AACT,WAAO,EAAP;AACD;AAHmC,C;kBAAjBD,gB","file":"interface.js","sourcesContent":["export default class ServiceInterface {\n getProto() {\n return {};\n }\n}\n"]}
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = undefined;
7
-
8
- var _joi = require('joi');
9
-
10
- var _joi2 = _interopRequireDefault(_joi);
11
-
12
- var _interface = require('./interface');
13
-
14
- var _interface2 = _interopRequireDefault(_interface);
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- let ValidatorBase = class ValidatorBase extends _interface2.default {
19
- getProto() {
20
- return _joi2.default;
21
- }
22
-
23
- getJoi() {
24
- return _joi2.default;
25
- }
26
- };
27
- exports.default = ValidatorBase;
28
- //# sourceMappingURL=joi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/joi.js"],"names":["ValidatorBase","ServiceInterface","getProto","Joi","getJoi"],"mappings":";;;;;;;AAAA;;;;AACA;;;;;;IAEqBA,a,GAAN,MAAMA,aAAN,SAA4BC,mBAA5B,CAA6C;AAC1DC,aAAW;AACT,WAAOC,aAAP;AACD;;AAEDC,WAAS;AACP,WAAOD,aAAP;AACD;AAPyD,C;kBAAvCH,a","file":"joi.js","sourcesContent":["import Joi from 'joi';\nimport ServiceInterface from './interface';\n\nexport default class ValidatorBase extends ServiceInterface {\n getProto() {\n return Joi;\n }\n\n getJoi() {\n return Joi;\n }\n}\n\n"]}
@@ -1,120 +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 _jwtSimple = require('jwt-simple');
13
-
14
- var _jwtSimple2 = _interopRequireDefault(_jwtSimple);
15
-
16
- var _config = require('./config');
17
-
18
- var _config2 = _interopRequireDefault(_config);
19
-
20
- var _redis = require('./redis');
21
-
22
- var _redis2 = _interopRequireDefault(_redis);
23
-
24
- var _interface = require('./interface');
25
-
26
- var _interface2 = _interopRequireDefault(_interface);
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- 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"); }); }; }
31
-
32
- //eslint-disable-line new-cap
33
- let JsonWebToken = (_dec = (0, _constitute.Dependencies)(_config2.default, _redis2.default), _dec(_class = class JsonWebToken extends _interface2.default {
34
- /**
35
- * @param config {Config}
36
- * @param redis {Redis}
37
- */
38
- constructor(config, redis) {
39
- super();
40
- this.redis = redis.getInstance();
41
- this.config = config.get('token');
42
- }
43
-
44
- getProto() {
45
- return _jwtSimple2.default;
46
- }
47
-
48
- getRedis() {
49
- return this.redis;
50
- }
51
-
52
- getPrefix() {
53
- return this.config.prefix;
54
- }
55
-
56
- save(uid, item) {
57
- var _this = this;
58
-
59
- return _asyncToGenerator(function* () {
60
- const toSaveItem = Object.assign({ uid }, item);
61
- const tokenString = _this.encode(toSaveItem);
62
- const key = [_this.getPrefix(), uid, tokenString.split('.').pop()].join(':');
63
- //TODO 过期时间
64
- yield _this.getRedis().set(key, JSON.stringify(toSaveItem));
65
- return tokenString;
66
- })();
67
- }
68
-
69
- find(tokenString) {
70
- var _this2 = this;
71
-
72
- return _asyncToGenerator(function* () {
73
- if (!tokenString) {
74
- return { uid: null, expiredAt: 0 };
75
- }
76
- const parsedToken = _this2.decode(tokenString);
77
- if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {
78
- return { uid: null, expiredAt: 0 };
79
- }
80
- const key = [_this2.getPrefix(), parsedToken.uid, tokenString.split('.').pop()].join(':');
81
- const storedToken = yield _this2.redis.get(key);
82
- if (!storedToken) {
83
- return {
84
- uid: parsedToken.uid,
85
- expiredAt: 0
86
- };
87
- }
88
- return JSON.parse(storedToken);
89
- })();
90
- }
91
-
92
- clear(tokenString) {
93
- if (!tokenString) {
94
- return true;
95
- }
96
- const key = this.getRedisKey(tokenString);
97
- if (!key) {
98
- return true;
99
- }
100
- return this.redis.del(key);
101
- }
102
-
103
- getRedisKey(tokenString, groupOnly = false) {
104
- const parsedToken = this.decode(tokenString);
105
- if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {
106
- return '';
107
- }
108
- return groupOnly === true ? [this.getPrefix(), parsedToken.uid].join(':') : [this.getPrefix(), parsedToken.uid, tokenString.split('.').pop()].join(':');
109
- }
110
-
111
- encode(item, secret = this.config.secret) {
112
- return _jwtSimple2.default.encode(item, secret);
113
- }
114
-
115
- decode(str, secret = this.config.secret) {
116
- return _jwtSimple2.default.decode(str, secret);
117
- }
118
- }) || _class);
119
- exports.default = JsonWebToken;
120
- //# sourceMappingURL=jwt_token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/jwt_token.js"],"names":["JsonWebToken","Config","Redis","ServiceInterface","constructor","config","redis","getInstance","get","getProto","jwt","getRedis","getPrefix","prefix","save","uid","item","toSaveItem","Object","assign","tokenString","encode","key","split","pop","join","set","JSON","stringify","find","expiredAt","parsedToken","decode","hasOwnProperty","call","storedToken","parse","clear","getRedisKey","del","groupOnly","secret","str"],"mappings":";;;;;;;;;AAAA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AAE6B;IACRA,Y,WADpB,8BAAaC,gBAAb,EAAqBC,eAArB,C,gBACc,MAAMF,YAAN,SAA2BG,mBAA3B,CAA4C;AACzD;;;;AAIAC,cAAYC,MAAZ,EAAoBC,KAApB,EAA2B;AACzB;AACA,SAAKA,KAAL,GAAaA,MAAMC,WAAN,EAAb;AACA,SAAKF,MAAL,GAAcA,OAAOG,GAAP,CAAW,OAAX,CAAd;AACD;;AAEDC,aAAW;AACT,WAAOC,mBAAP;AACD;;AAEDC,aAAW;AACT,WAAO,KAAKL,KAAZ;AACD;;AAEDM,cAAY;AACV,WAAO,KAAKP,MAAL,CAAYQ,MAAnB;AACD;;AAEKC,MAAN,CAAWC,GAAX,EAAgBC,IAAhB,EAAsB;AAAA;;AAAA;AACpB,YAAMC,aAAaC,OAAOC,MAAP,CAAc,EAAEJ,GAAF,EAAd,EAAuBC,IAAvB,CAAnB;AACA,YAAMI,cAAc,MAAKC,MAAL,CAAYJ,UAAZ,CAApB;AACA,YAAMK,MAAM,CAAC,MAAKV,SAAL,EAAD,EAAmBG,GAAnB,EAAwBK,YAAYG,KAAZ,CAAkB,GAAlB,EAAuBC,GAAvB,EAAxB,EAAsDC,IAAtD,CAA2D,GAA3D,CAAZ;AACA;AACA,YAAM,MAAKd,QAAL,GAAgBe,GAAhB,CAAoBJ,GAApB,EAAyBK,KAAKC,SAAL,CAAeX,UAAf,CAAzB,CAAN;AACA,aAAOG,WAAP;AANoB;AAOrB;;AAEKS,MAAN,CAAWT,WAAX,EAAwB;AAAA;;AAAA;AACtB,UAAI,CAACA,WAAL,EAAkB;AAChB,eAAO,EAAEL,KAAK,IAAP,EAAae,WAAW,CAAxB,EAAP;AACD;AACD,YAAMC,cAAc,OAAKC,MAAL,CAAYZ,WAAZ,CAApB;AACA,UAAI,CAACW,WAAD,IAAgB,CAAC,GAAGE,cAAH,CAAkBC,IAAlB,CAAuBH,WAAvB,EAAoC,KAApC,CAArB,EAAiE;AAC/D,eAAO,EAAEhB,KAAK,IAAP,EAAae,WAAW,CAAxB,EAAP;AACD;AACD,YAAMR,MAAM,CAAC,OAAKV,SAAL,EAAD,EAAmBmB,YAAYhB,GAA/B,EAAoCK,YAAYG,KAAZ,CAAkB,GAAlB,EAAuBC,GAAvB,EAApC,EAAkEC,IAAlE,CAAuE,GAAvE,CAAZ;AACA,YAAMU,cAAc,MAAM,OAAK7B,KAAL,CAAWE,GAAX,CAAec,GAAf,CAA1B;AACA,UAAI,CAACa,WAAL,EAAkB;AAChB,eAAO;AACLpB,eAAKgB,YAAYhB,GADZ;AAELe,qBAAW;AAFN,SAAP;AAID;AACD,aAAOH,KAAKS,KAAL,CAAWD,WAAX,CAAP;AAhBsB;AAiBvB;;AAEDE,QAAMjB,WAAN,EAAmB;AACjB,QAAI,CAACA,WAAL,EAAkB;AAChB,aAAO,IAAP;AACD;AACD,UAAME,MAAM,KAAKgB,WAAL,CAAiBlB,WAAjB,CAAZ;AACA,QAAI,CAACE,GAAL,EAAU;AACR,aAAO,IAAP;AACD;AACD,WAAO,KAAKhB,KAAL,CAAWiC,GAAX,CAAejB,GAAf,CAAP;AACD;;AAEDgB,cAAYlB,WAAZ,EAAyBoB,YAAY,KAArC,EAA4C;AAC1C,UAAMT,cAAc,KAAKC,MAAL,CAAYZ,WAAZ,CAApB;AACA,QAAI,CAACW,WAAD,IAAgB,CAAC,GAAGE,cAAH,CAAkBC,IAAlB,CAAuBH,WAAvB,EAAoC,KAApC,CAArB,EAAiE;AAC/D,aAAO,EAAP;AACD;AACD,WAAOS,cAAc,IAAd,GACL,CAAC,KAAK5B,SAAL,EAAD,EAAmBmB,YAAYhB,GAA/B,EAAoCU,IAApC,CAAyC,GAAzC,CADK,GAEL,CAAC,KAAKb,SAAL,EAAD,EAAmBmB,YAAYhB,GAA/B,EAAoCK,YAAYG,KAAZ,CAAkB,GAAlB,EAAuBC,GAAvB,EAApC,EAAkEC,IAAlE,CAAuE,GAAvE,CAFF;AAGD;;AAEDJ,SAAOL,IAAP,EAAayB,SAAS,KAAKpC,MAAL,CAAYoC,MAAlC,EAA0C;AACxC,WAAO/B,oBAAIW,MAAJ,CAAWL,IAAX,EAAiByB,MAAjB,CAAP;AACD;;AAEDT,SAAOU,GAAP,EAAYD,SAAS,KAAKpC,MAAL,CAAYoC,MAAjC,EAAyC;AACvC,WAAO/B,oBAAIsB,MAAJ,CAAWU,GAAX,EAAgBD,MAAhB,CAAP;AACD;AA9EwD,C;kBAAtCzC,Y","file":"jwt_token.js","sourcesContent":["import { Dependencies } from 'constitute';\nimport jwt from 'jwt-simple';\nimport Config from './config';\nimport Redis from './redis';\nimport ServiceInterface from './interface';\n\n@Dependencies(Config, Redis) //eslint-disable-line new-cap\nexport default class JsonWebToken extends ServiceInterface {\n /**\n * @param config {Config}\n * @param redis {Redis}\n */\n constructor(config, redis) {\n super();\n this.redis = redis.getInstance();\n this.config = config.get('token');\n }\n\n getProto() {\n return jwt;\n }\n\n getRedis() {\n return this.redis;\n }\n\n getPrefix() {\n return this.config.prefix;\n }\n\n async save(uid, item) {\n const toSaveItem = Object.assign({ uid }, item);\n const tokenString = this.encode(toSaveItem);\n const key = [this.getPrefix(), uid, tokenString.split('.').pop()].join(':');\n //TODO 过期时间\n await this.getRedis().set(key, JSON.stringify(toSaveItem));\n return tokenString;\n }\n\n async find(tokenString) {\n if (!tokenString) {\n return { uid: null, expiredAt: 0 };\n }\n const parsedToken = this.decode(tokenString);\n if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {\n return { uid: null, expiredAt: 0 };\n }\n const key = [this.getPrefix(), parsedToken.uid, tokenString.split('.').pop()].join(':');\n const storedToken = await this.redis.get(key);\n if (!storedToken) {\n return {\n uid: parsedToken.uid,\n expiredAt: 0\n };\n }\n return JSON.parse(storedToken);\n }\n\n clear(tokenString) {\n if (!tokenString) {\n return true;\n }\n const key = this.getRedisKey(tokenString);\n if (!key) {\n return true;\n }\n return this.redis.del(key);\n }\n\n getRedisKey(tokenString, groupOnly = false) {\n const parsedToken = this.decode(tokenString);\n if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {\n return '';\n }\n return groupOnly === true ?\n [this.getPrefix(), parsedToken.uid].join(':') :\n [this.getPrefix(), parsedToken.uid, tokenString.split('.').pop()].join(':');\n }\n\n encode(item, secret = this.config.secret) {\n return jwt.encode(item, secret);\n }\n\n decode(str, secret = this.config.secret) {\n return jwt.decode(str, secret);\n }\n}\n"]}
@@ -1,111 +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 _jwtSimple = require('jwt-simple');
13
-
14
- var _jwtSimple2 = _interopRequireDefault(_jwtSimple);
15
-
16
- var _lodash = require('lodash');
17
-
18
- var _lodash2 = _interopRequireDefault(_lodash);
19
-
20
- var _exceptions = require('../exceptions');
21
-
22
- var _config = require('./config');
23
-
24
- var _config2 = _interopRequireDefault(_config);
25
-
26
- var _rest_client = require('../services/rest_client');
27
-
28
- var _rest_client2 = _interopRequireDefault(_rest_client);
29
-
30
- var _interface = require('./interface');
31
-
32
- var _interface2 = _interopRequireDefault(_interface);
33
-
34
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
-
36
- 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"); }); }; }
37
-
38
- //eslint-disable-line new-cap
39
- let KongJsonWebToken = (_dec = (0, _constitute.Dependencies)(_config2.default, _rest_client2.default), _dec(_class = class KongJsonWebToken extends _interface2.default {
40
- /**
41
- * @param config {Config}
42
- * @param restClient {RestClient}
43
- */
44
- constructor(config, restClient) {
45
- super();
46
- this.restClient = restClient;
47
- this.config = config.get('token');
48
- if (!_lodash2.default.get(this.config, 'kong.endpoint')) {
49
- throw new _exceptions.RuntimeException('config item `token.kong.endpoint` can not be null');
50
- }
51
- }
52
-
53
- getProto() {
54
- return _jwtSimple2.default;
55
- }
56
-
57
- save(uid, item) {
58
- var _this = this;
59
-
60
- return _asyncToGenerator(function* () {
61
- const toSaveItem = Object.assign({ uid }, item);
62
- const tokenString = _this.encode(toSaveItem);
63
- yield _this.restClient.request({
64
- url: `${_this.config.kong.endpoint}/rbac/credentials`,
65
- method: 'post',
66
- body: {
67
- custom_id: uid.toString(),
68
- username: item.username || null,
69
- key: tokenString,
70
- expired_at: item.expiredAt ? item.expiredAt * 1000 : null
71
- }
72
- });
73
- return tokenString;
74
- })();
75
- }
76
-
77
- find(tokenString) {
78
- var _this2 = this;
79
-
80
- return _asyncToGenerator(function* () {
81
- if (!tokenString) {
82
- return { uid: null, expiredAt: 0 };
83
- }
84
- const parsedToken = _this2.decode(tokenString);
85
- if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {
86
- return { uid: null, expiredAt: 0 };
87
- }
88
- return parsedToken;
89
- })();
90
- }
91
-
92
- clear(tokenString) {
93
- if (!tokenString) {
94
- return true;
95
- }
96
- return this.restClient.request({
97
- url: `${this.config.kong.endpoint}/rbac/credentials/${tokenString}`,
98
- method: 'delete'
99
- });
100
- }
101
-
102
- encode(item, secret = this.config.secret) {
103
- return _jwtSimple2.default.encode(item, secret);
104
- }
105
-
106
- decode(str, secret = this.config.secret) {
107
- return _jwtSimple2.default.decode(str, secret);
108
- }
109
- }) || _class);
110
- exports.default = KongJsonWebToken;
111
- //# sourceMappingURL=jwt_token_kong.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/jwt_token_kong.js"],"names":["KongJsonWebToken","Config","RestClient","ServiceInterface","constructor","config","restClient","get","_","RuntimeException","getProto","jwt","save","uid","item","toSaveItem","Object","assign","tokenString","encode","request","url","kong","endpoint","method","body","custom_id","toString","username","key","expired_at","expiredAt","find","parsedToken","decode","hasOwnProperty","call","clear","secret","str"],"mappings":";;;;;;;;;AAAA;;AACA;;;;AACA;;;;AAEA;;AACA;;;;AACA;;;;AACA;;;;;;;;AAEkC;IACbA,gB,WADpB,8BAAaC,gBAAb,EAAqBC,qBAArB,C,gBACc,MAAMF,gBAAN,SAA+BG,mBAA/B,CAAgD;AAC7D;;;;AAIAC,cAAYC,MAAZ,EAAoBC,UAApB,EAAgC;AAC9B;AACA,SAAKA,UAAL,GAAkBA,UAAlB;AACA,SAAKD,MAAL,GAAcA,OAAOE,GAAP,CAAW,OAAX,CAAd;AACA,QAAI,CAACC,iBAAED,GAAF,CAAM,KAAKF,MAAX,EAAmB,eAAnB,CAAL,EAA0C;AACxC,YAAM,IAAII,4BAAJ,CAAqB,mDAArB,CAAN;AACD;AACF;;AAEDC,aAAW;AACT,WAAOC,mBAAP;AACD;;AAEKC,MAAN,CAAWC,GAAX,EAAgBC,IAAhB,EAAsB;AAAA;;AAAA;AACpB,YAAMC,aAAaC,OAAOC,MAAP,CAAc,EAAEJ,GAAF,EAAd,EAAuBC,IAAvB,CAAnB;AACA,YAAMI,cAAc,MAAKC,MAAL,CAAYJ,UAAZ,CAApB;AACA,YAAM,MAAKT,UAAL,CAAgBc,OAAhB,CAAwB;AAC5BC,aAAM,GAAE,MAAKhB,MAAL,CAAYiB,IAAZ,CAAiBC,QAAS,mBADN;AAE5BC,gBAAQ,MAFoB;AAG5BC,cAAM;AACJC,qBAAWb,IAAIc,QAAJ,EADP;AAEJC,oBAAUd,KAAKc,QAAL,IAAiB,IAFvB;AAGJC,eAAKX,WAHD;AAIJY,sBAAYhB,KAAKiB,SAAL,GAAiBjB,KAAKiB,SAAL,GAAiB,IAAlC,GAAyC;AAJjD;AAHsB,OAAxB,CAAN;AAUA,aAAOb,WAAP;AAboB;AAcrB;;AAEKc,MAAN,CAAWd,WAAX,EAAwB;AAAA;;AAAA;AACtB,UAAI,CAACA,WAAL,EAAkB;AAChB,eAAO,EAAEL,KAAK,IAAP,EAAakB,WAAW,CAAxB,EAAP;AACD;AACD,YAAME,cAAc,OAAKC,MAAL,CAAYhB,WAAZ,CAApB;AACA,UAAI,CAACe,WAAD,IAAgB,CAAC,GAAGE,cAAH,CAAkBC,IAAlB,CAAuBH,WAAvB,EAAoC,KAApC,CAArB,EAAiE;AAC/D,eAAO,EAAEpB,KAAK,IAAP,EAAakB,WAAW,CAAxB,EAAP;AACD;AACD,aAAOE,WAAP;AARsB;AASvB;;AAEDI,QAAMnB,WAAN,EAAmB;AACjB,QAAI,CAACA,WAAL,EAAkB;AAChB,aAAO,IAAP;AACD;AACD,WAAO,KAAKZ,UAAL,CAAgBc,OAAhB,CAAwB;AAC7BC,WAAM,GAAE,KAAKhB,MAAL,CAAYiB,IAAZ,CAAiBC,QAAS,qBAAoBL,WAAY,EADrC;AAE7BM,cAAQ;AAFqB,KAAxB,CAAP;AAID;;AAEDL,SAAOL,IAAP,EAAawB,SAAS,KAAKjC,MAAL,CAAYiC,MAAlC,EAA0C;AACxC,WAAO3B,oBAAIQ,MAAJ,CAAWL,IAAX,EAAiBwB,MAAjB,CAAP;AACD;;AAEDJ,SAAOK,GAAP,EAAYD,SAAS,KAAKjC,MAAL,CAAYiC,MAAjC,EAAyC;AACvC,WAAO3B,oBAAIuB,MAAJ,CAAWK,GAAX,EAAgBD,MAAhB,CAAP;AACD;AA7D4D,C;kBAA1CtC,gB","file":"jwt_token_kong.js","sourcesContent":["import { Dependencies } from 'constitute';\nimport jwt from 'jwt-simple';\nimport _ from 'lodash';\n\nimport { RuntimeException } from '../exceptions';\nimport Config from './config';\nimport RestClient from '../services/rest_client';\nimport ServiceInterface from './interface';\n\n@Dependencies(Config, RestClient) //eslint-disable-line new-cap\nexport default class KongJsonWebToken extends ServiceInterface {\n /**\n * @param config {Config}\n * @param restClient {RestClient}\n */\n constructor(config, restClient) {\n super();\n this.restClient = restClient;\n this.config = config.get('token');\n if (!_.get(this.config, 'kong.endpoint')) {\n throw new RuntimeException('config item `token.kong.endpoint` can not be null');\n }\n }\n\n getProto() {\n return jwt;\n }\n\n async save(uid, item) {\n const toSaveItem = Object.assign({ uid }, item);\n const tokenString = this.encode(toSaveItem);\n await this.restClient.request({\n url: `${this.config.kong.endpoint}/rbac/credentials`,\n method: 'post',\n body: {\n custom_id: uid.toString(),\n username: item.username || null,\n key: tokenString,\n expired_at: item.expiredAt ? item.expiredAt * 1000 : null\n }\n });\n return tokenString;\n }\n\n async find(tokenString) {\n if (!tokenString) {\n return { uid: null, expiredAt: 0 };\n }\n const parsedToken = this.decode(tokenString);\n if (!parsedToken || !{}.hasOwnProperty.call(parsedToken, 'uid')) {\n return { uid: null, expiredAt: 0 };\n }\n return parsedToken;\n }\n\n clear(tokenString) {\n if (!tokenString) {\n return true;\n }\n return this.restClient.request({\n url: `${this.config.kong.endpoint}/rbac/credentials/${tokenString}`,\n method: 'delete'\n });\n }\n\n encode(item, secret = this.config.secret) {\n return jwt.encode(item, secret);\n }\n\n decode(str, secret = this.config.secret) {\n return jwt.decode(str, secret);\n }\n}\n"]}