UNPKG

5.88 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _logger = require('./logger');
8
9var _logger2 = _interopRequireDefault(_logger);
10
11var _trustedEndpointBase = require('./trusted-endpoint-base');
12
13var _trustedEndpointBase2 = _interopRequireDefault(_trustedEndpointBase);
14
15var _trustedEndpointCache = require('./trusted-endpoint-cache');
16
17var _trustedEndpointCache2 = _interopRequireDefault(_trustedEndpointCache);
18
19var _schemas = require('./schemas');
20
21var _trustedEndpointSchema = require('./schemas/trusted-endpoint-schema');
22
23var _trustedEndpointSchema2 = _interopRequireDefault(_trustedEndpointSchema);
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27const logger = (0, _logger2.default)('trusted-endpoint');
28
29
30let single;
31
32function 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
40function 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
50function getLocalAuth() {
51 return ensureSingleton().getLocalAuth();
52}
53
54function getRemoteAuth(request) {
55 return ensureSingleton().getRemoteAuth(request);
56}
57
58function flush(keyId) {
59 let single = ensureSingleton();
60 if (single.flush) {
61 single.flush(keyId);
62 }
63}
64
65function flushAll() {
66 let single = ensureSingleton();
67 if (single.flushAll) {
68 single.flushAll();
69 }
70}
71
72function close() {
73 let single = ensureSingleton();
74 if (single.close) {
75 single.close();
76 }
77}
78
79exports.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};
90module.exports = exports['default'];
91//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi90cnVzdGVkLWVuZHBvaW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7Ozs7QUFGQSxNQUFNLFNBQVMsc0JBQWEsa0JBQWIsQ0FBVDs7O0FBSU4sSUFBSSxNQUFKOztBQUVBLFNBQVMsZUFBVCxHQUEyQjtBQUN6QixNQUFJLENBQUMsTUFBRCxFQUFTO0FBQ1gsV0FBTyxLQUFQLENBQWEsbUNBQWIsRUFEVztBQUVYLFVBQU0sSUFBSSxLQUFKLENBQVUsOERBQVYsQ0FBTixDQUZXO0dBQWI7QUFJQSxTQUFPLE1BQVAsQ0FMeUI7Q0FBM0I7O0FBUUEsU0FBUyxNQUFULENBQWdCLE9BQWhCLEVBQXlCLGNBQXpCLEVBQXlDO0FBQ3ZDLHlCQUFTLE9BQVQsbUNBRHVDO0FBRXZDLE1BQUksUUFBUSxPQUFDLENBQVEsUUFBUixpQ0FBRCxnQ0FBUixDQUZtQztBQUd2QyxNQUFJLFdBQVcsSUFBSSxLQUFKLENBQVUsT0FBVixDQUFYLENBSG1DO0FBSXZDLE1BQUksa0JBQWtCLENBQUMsTUFBRCxFQUFTO0FBQzdCLGFBQVMsUUFBVCxDQUQ2QjtHQUEvQjtBQUdBLFNBQU8sUUFBUCxDQVB1QztDQUF6Qzs7QUFVQSxTQUFTLFlBQVQsR0FBd0I7QUFDdEIsU0FBTyxrQkFBa0IsWUFBbEIsRUFBUCxDQURzQjtDQUF4Qjs7QUFJQSxTQUFTLGFBQVQsQ0FBdUIsT0FBdkIsRUFBZ0M7QUFDOUIsU0FBTyxrQkFBa0IsYUFBbEIsQ0FBZ0MsT0FBaEMsQ0FBUCxDQUQ4QjtDQUFoQzs7QUFJQSxTQUFTLEtBQVQsQ0FBZSxLQUFmLEVBQXNCO0FBQ3BCLE1BQUksU0FBUyxpQkFBVCxDQURnQjtBQUVwQixNQUFJLE9BQU8sS0FBUCxFQUFjO0FBQ2hCLFdBQU8sS0FBUCxDQUFhLEtBQWIsRUFEZ0I7R0FBbEI7Q0FGRjs7QUFPQSxTQUFTLFFBQVQsR0FBb0I7QUFDbEIsTUFBSSxTQUFTLGlCQUFULENBRGM7QUFFbEIsTUFBSSxPQUFPLFFBQVAsRUFBaUI7QUFDbkIsV0FBTyxRQUFQLEdBRG1CO0dBQXJCO0NBRkY7O0FBT0EsU0FBUyxLQUFULEdBQWlCO0FBQ2YsTUFBSSxTQUFTLGlCQUFULENBRFc7QUFFZixNQUFJLE9BQU8sS0FBUCxFQUFjO0FBQ2hCLFdBQU8sS0FBUCxHQURnQjtHQUFsQjtDQUZGOztrQkFPZTtBQUNiLGdCQURhO0FBRWIsZ0RBRmE7QUFHYixzREFIYTtBQUliLGFBQVcsZUFBWDtBQUNBLDRCQUxhO0FBTWIsOEJBTmE7QUFPYixjQVBhO0FBUWIsb0JBUmE7QUFTYixjQVRhIiwiZmlsZSI6InRydXN0ZWQtZW5kcG9pbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBUcnVzdGVkRW5kcG9pbnQgZnJvbSAnLi90cnVzdGVkLWVuZHBvaW50LWJhc2UnO1xuaW1wb3J0IFRydXN0ZWRFbmRwb2ludENhY2hlIGZyb20gJy4vdHJ1c3RlZC1lbmRwb2ludC1jYWNoZSc7XG5jb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoJ3RydXN0ZWQtZW5kcG9pbnQnKTtcbmltcG9ydCB7IHZhbGlkYXRlIH0gZnJvbSAnLi9zY2hlbWFzJztcbmltcG9ydCBvcHRpb25zU2NoZW1hIGZyb20gJy4vc2NoZW1hcy90cnVzdGVkLWVuZHBvaW50LXNjaGVtYSc7XG5cbmxldCBzaW5nbGU7XG5cbmZ1bmN0aW9uIGVuc3VyZVNpbmdsZXRvbigpIHtcbiAgaWYgKCFzaW5nbGUpIHtcbiAgICBsb2dnZXIuZGVidWcoJ01vZHVsZS9TaW5nbGV0b24gbm90IGluaXRpYWxpemVkLicpO1xuICAgIHRocm93IG5ldyBFcnJvcigndHJ1c3RlZC1lbmRwb2ludCBtb2R1bGUgbm90IGluaXRpYWxpemVkIHRvIGJlIHVzZWQgZGlyZWN0bHkuJyk7XG4gIH1cbiAgcmV0dXJuIHNpbmdsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKG9wdGlvbnMsIHVzZUFzU2luZ2xldG9uKSB7XG4gIHZhbGlkYXRlKG9wdGlvbnMsIG9wdGlvbnNTY2hlbWEpO1xuICBsZXQgQ2xhc3MgPSAob3B0aW9ucy51c2VDYWNoZSkgPyBUcnVzdGVkRW5kcG9pbnRDYWNoZSA6IFRydXN0ZWRFbmRwb2ludDtcbiAgbGV0IGluc3RhbmNlID0gbmV3IENsYXNzKG9wdGlvbnMpO1xuICBpZiAodXNlQXNTaW5nbGV0b24gJiYgIXNpbmdsZSkge1xuICAgIHNpbmdsZSA9IGluc3RhbmNlO1xuICB9XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxBdXRoKCkge1xuICByZXR1cm4gZW5zdXJlU2luZ2xldG9uKCkuZ2V0TG9jYWxBdXRoKCk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbW90ZUF1dGgocmVxdWVzdCkge1xuICByZXR1cm4gZW5zdXJlU2luZ2xldG9uKCkuZ2V0UmVtb3RlQXV0aChyZXF1ZXN0KTtcbn1cblxuZnVuY3Rpb24gZmx1c2goa2V5SWQpIHtcbiAgbGV0IHNpbmdsZSA9IGVuc3VyZVNpbmdsZXRvbigpO1xuICBpZiAoc2luZ2xlLmZsdXNoKSB7XG4gICAgc2luZ2xlLmZsdXNoKGtleUlkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaEFsbCgpIHtcbiAgbGV0IHNpbmdsZSA9IGVuc3VyZVNpbmdsZXRvbigpO1xuICBpZiAoc2luZ2xlLmZsdXNoQWxsKSB7XG4gICAgc2luZ2xlLmZsdXNoQWxsKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvc2UoKSB7XG4gIGxldCBzaW5nbGUgPSBlbnN1cmVTaW5nbGV0b24oKTtcbiAgaWYgKHNpbmdsZS5jbG9zZSkge1xuICAgIHNpbmdsZS5jbG9zZSgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlLFxuICBUcnVzdGVkRW5kcG9pbnQsXG4gIFRydXN0ZWRFbmRwb2ludENhY2hlLFxuICBzaW5nbGV0b246IGVuc3VyZVNpbmdsZXRvbixcbiAgZ2V0TG9jYWxBdXRoLFxuICBnZXRSZW1vdGVBdXRoLFxuICBmbHVzaCxcbiAgZmx1c2hBbGwsXG4gIGNsb3NlXG59O1xuIl19
\No newline at end of file