1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _logger = require('./logger');
|
8 |
|
9 | var _logger2 = _interopRequireDefault(_logger);
|
10 |
|
11 | var _trustedEndpointBase = require('./trusted-endpoint-base');
|
12 |
|
13 | var _trustedEndpointBase2 = _interopRequireDefault(_trustedEndpointBase);
|
14 |
|
15 | var _trustedEndpointCache = require('./trusted-endpoint-cache');
|
16 |
|
17 | var _trustedEndpointCache2 = _interopRequireDefault(_trustedEndpointCache);
|
18 |
|
19 | var _schemas = require('./schemas');
|
20 |
|
21 | var _trustedEndpointSchema = require('./schemas/trusted-endpoint-schema');
|
22 |
|
23 | var _trustedEndpointSchema2 = _interopRequireDefault(_trustedEndpointSchema);
|
24 |
|
25 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
26 |
|
27 | const logger = (0, _logger2.default)('trusted-endpoint');
|
28 |
|
29 |
|
30 | let single;
|
31 |
|
32 | function ensureSingleton() {
|
33 | if (!single) {
|
34 | logger.debug('Module/Singleton not initialized.');
|
35 | throw new Error('trusted-endpoint module not initialized to be used directly.');
|
36 | }
|
37 | return single;
|
38 | }
|
39 |
|
40 | function create(options, useAsSingleton) {
|
41 | (0, _schemas.validate)(options, _trustedEndpointSchema2.default);
|
42 | let Class = options.useCache ? _trustedEndpointCache2.default : _trustedEndpointBase2.default;
|
43 | let instance = new Class(options);
|
44 | if (useAsSingleton && !single) {
|
45 | single = instance;
|
46 | }
|
47 | return instance;
|
48 | }
|
49 |
|
50 | function getLocalAuth() {
|
51 | return ensureSingleton().getLocalAuth();
|
52 | }
|
53 |
|
54 | function getRemoteAuth(request) {
|
55 | return ensureSingleton().getRemoteAuth(request);
|
56 | }
|
57 |
|
58 | function flush(keyId) {
|
59 | let single = ensureSingleton();
|
60 | if (single.flush) {
|
61 | single.flush(keyId);
|
62 | }
|
63 | }
|
64 |
|
65 | function flushAll() {
|
66 | let single = ensureSingleton();
|
67 | if (single.flushAll) {
|
68 | single.flushAll();
|
69 | }
|
70 | }
|
71 |
|
72 | function close() {
|
73 | let single = ensureSingleton();
|
74 | if (single.close) {
|
75 | single.close();
|
76 | }
|
77 | }
|
78 |
|
79 | exports.default = {
|
80 | create: create,
|
81 | TrustedEndpoint: _trustedEndpointBase2.default,
|
82 | TrustedEndpointCache: _trustedEndpointCache2.default,
|
83 | singleton: ensureSingleton,
|
84 | getLocalAuth: getLocalAuth,
|
85 | getRemoteAuth: getRemoteAuth,
|
86 | flush: flush,
|
87 | flushAll: flushAll,
|
88 | close: close
|
89 | };
|
90 | module.exports = exports['default'];
|
91 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi90cnVzdGVkLWVuZHBvaW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7Ozs7QUFGQSxNQUFNLFNBQVMsc0JBQWEsa0JBQWIsQ0FBVDs7O0FBSU4sSUFBSSxNQUFKOztBQUVBLFNBQVMsZUFBVCxHQUEyQjtBQUN6QixNQUFJLENBQUMsTUFBRCxFQUFTO0FBQ1gsV0FBTyxLQUFQLENBQWEsbUNBQWIsRUFEVztBQUVYLFVBQU0sSUFBSSxLQUFKLENBQVUsOERBQVYsQ0FBTixDQUZXO0dBQWI7QUFJQSxTQUFPLE1BQVAsQ0FMeUI7Q0FBM0I7O0FBUUEsU0FBUyxNQUFULENBQWdCLE9BQWhCLEVBQXlCLGNBQXpCLEVBQXlDO0FBQ3ZDLHlCQUFTLE9BQVQsbUNBRHVDO0FBRXZDLE1BQUksUUFBUSxPQUFDLENBQVEsUUFBUixpQ0FBRCxnQ0FBUixDQUZtQztBQUd2QyxNQUFJLFdBQVcsSUFBSSxLQUFKLENBQVUsT0FBVixDQUFYLENBSG1DO0FBSXZDLE1BQUksa0JBQWtCLENBQUMsTUFBRCxFQUFTO0FBQzdCLGFBQVMsUUFBVCxDQUQ2QjtHQUEvQjtBQUdBLFNBQU8sUUFBUCxDQVB1QztDQUF6Qzs7QUFVQSxTQUFTLFlBQVQsR0FBd0I7QUFDdEIsU0FBTyxrQkFBa0IsWUFBbEIsRUFBUCxDQURzQjtDQUF4Qjs7QUFJQSxTQUFTLGFBQVQsQ0FBdUIsT0FBdkIsRUFBZ0M7QUFDOUIsU0FBTyxrQkFBa0IsYUFBbEIsQ0FBZ0MsT0FBaEMsQ0FBUCxDQUQ4QjtDQUFoQzs7QUFJQSxTQUFTLEtBQVQsQ0FBZSxLQUFmLEVBQXNCO0FBQ3BCLE1BQUksU0FBUyxpQkFBVCxDQURnQjtBQUVwQixNQUFJLE9BQU8sS0FBUCxFQUFjO0FBQ2hCLFdBQU8sS0FBUCxDQUFhLEtBQWIsRUFEZ0I7R0FBbEI7Q0FGRjs7QUFPQSxTQUFTLFFBQVQsR0FBb0I7QUFDbEIsTUFBSSxTQUFTLGlCQUFULENBRGM7QUFFbEIsTUFBSSxPQUFPLFFBQVAsRUFBaUI7QUFDbkIsV0FBTyxRQUFQLEdBRG1CO0dBQXJCO0NBRkY7O0FBT0EsU0FBUyxLQUFULEdBQWlCO0FBQ2YsTUFBSSxTQUFTLGlCQUFULENBRFc7QUFFZixNQUFJLE9BQU8sS0FBUCxFQUFjO0FBQ2hCLFdBQU8sS0FBUCxHQURnQjtHQUFsQjtDQUZGOztrQkFPZTtBQUNiLGdCQURhO0FBRWIsZ0RBRmE7QUFHYixzREFIYTtBQUliLGFBQVcsZUFBWDtBQUNBLDRCQUxhO0FBTWIsOEJBTmE7QUFPYixjQVBhO0FBUWIsb0JBUmE7QUFTYixjQVRhIiwiZmlsZSI6InRydXN0ZWQtZW5kcG9pbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBUcnVzdGVkRW5kcG9pbnQgZnJvbSAnLi90cnVzdGVkLWVuZHBvaW50LWJhc2UnO1xuaW1wb3J0IFRydXN0ZWRFbmRwb2ludENhY2hlIGZyb20gJy4vdHJ1c3RlZC1lbmRwb2ludC1jYWNoZSc7XG5jb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoJ3RydXN0ZWQtZW5kcG9pbnQnKTtcbmltcG9ydCB7IHZhbGlkYXRlIH0gZnJvbSAnLi9zY2hlbWFzJztcbmltcG9ydCBvcHRpb25zU2NoZW1hIGZyb20gJy4vc2NoZW1hcy90cnVzdGVkLWVuZHBvaW50LXNjaGVtYSc7XG5cbmxldCBzaW5nbGU7XG5cbmZ1bmN0aW9uIGVuc3VyZVNpbmdsZXRvbigpIHtcbiAgaWYgKCFzaW5nbGUpIHtcbiAgICBsb2dnZXIuZGVidWcoJ01vZHVsZS9TaW5nbGV0b24gbm90IGluaXRpYWxpemVkLicpO1xuICAgIHRocm93IG5ldyBFcnJvcigndHJ1c3RlZC1lbmRwb2ludCBtb2R1bGUgbm90IGluaXRpYWxpemVkIHRvIGJlIHVzZWQgZGlyZWN0bHkuJyk7XG4gIH1cbiAgcmV0dXJuIHNpbmdsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKG9wdGlvbnMsIHVzZUFzU2luZ2xldG9uKSB7XG4gIHZhbGlkYXRlKG9wdGlvbnMsIG9wdGlvbnNTY2hlbWEpO1xuICBsZXQgQ2xhc3MgPSAob3B0aW9ucy51c2VDYWNoZSkgPyBUcnVzdGVkRW5kcG9pbnRDYWNoZSA6IFRydXN0ZWRFbmRwb2ludDtcbiAgbGV0IGluc3RhbmNlID0gbmV3IENsYXNzKG9wdGlvbnMpO1xuICBpZiAodXNlQXNTaW5nbGV0b24gJiYgIXNpbmdsZSkge1xuICAgIHNpbmdsZSA9IGluc3RhbmNlO1xuICB9XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxBdXRoKCkge1xuICByZXR1cm4gZW5zdXJlU2luZ2xldG9uKCkuZ2V0TG9jYWxBdXRoKCk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbW90ZUF1dGgocmVxdWVzdCkge1xuICByZXR1cm4gZW5zdXJlU2luZ2xldG9uKCkuZ2V0UmVtb3RlQXV0aChyZXF1ZXN0KTtcbn1cblxuZnVuY3Rpb24gZmx1c2goa2V5SWQpIHtcbiAgbGV0IHNpbmdsZSA9IGVuc3VyZVNpbmdsZXRvbigpO1xuICBpZiAoc2luZ2xlLmZsdXNoKSB7XG4gICAgc2luZ2xlLmZsdXNoKGtleUlkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaEFsbCgpIHtcbiAgbGV0IHNpbmdsZSA9IGVuc3VyZVNpbmdsZXRvbigpO1xuICBpZiAoc2luZ2xlLmZsdXNoQWxsKSB7XG4gICAgc2luZ2xlLmZsdXNoQWxsKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvc2UoKSB7XG4gIGxldCBzaW5nbGUgPSBlbnN1cmVTaW5nbGV0b24oKTtcbiAgaWYgKHNpbmdsZS5jbG9zZSkge1xuICAgIHNpbmdsZS5jbG9zZSgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlLFxuICBUcnVzdGVkRW5kcG9pbnQsXG4gIFRydXN0ZWRFbmRwb2ludENhY2hlLFxuICBzaW5nbGV0b246IGVuc3VyZVNpbmdsZXRvbixcbiAgZ2V0TG9jYWxBdXRoLFxuICBnZXRSZW1vdGVBdXRoLFxuICBmbHVzaCxcbiAgZmx1c2hBbGwsXG4gIGNsb3NlXG59O1xuIl19 |
\ | No newline at end of file |