1 | ;
|
2 |
|
3 | var _keyidSchemas = require('./schemas/keyid-schemas');
|
4 |
|
5 | var _schemas = require('./schemas');
|
6 |
|
7 | let $cause = Symbol('cause');
|
8 |
|
9 | class MalformedKeyIdError extends Error {
|
10 | constructor(message, cause) {
|
11 | super(message);
|
12 | this.name = this.constructor.name;
|
13 | this.message = message;
|
14 | this[$cause] = cause;
|
15 | Error.captureStackTrace(this, this.constructor.name);
|
16 | }
|
17 |
|
18 | get cause() {
|
19 | return this[$cause];
|
20 | }
|
21 | }
|
22 |
|
23 | let $parsed = Symbol('parsed');
|
24 |
|
25 | class KeyId {
|
26 | constructor(pId, kId) {
|
27 | const principalId = (0, _schemas.validate)(pId, _keyidSchemas.principalidSchema);
|
28 | const keyId = (0, _schemas.validate)(kId, _keyidSchemas.keyidSchema);
|
29 | this[$parsed] = [principalId, keyId];
|
30 | }
|
31 |
|
32 | get principalId() {
|
33 | return this[$parsed][0];
|
34 | }
|
35 |
|
36 | get keyId() {
|
37 | return this[$parsed][1];
|
38 | }
|
39 |
|
40 | toString() {
|
41 | return `${ encodeURIComponent(this.principalId) }/${ encodeURIComponent(this.keyId) }`;
|
42 | }
|
43 | }
|
44 |
|
45 | function parse(kId) {
|
46 | const keyId = (0, _schemas.validate)(kId, _keyidSchemas.identifierSchema);
|
47 | let parsed = keyId.split('/');
|
48 | return new KeyId(decodeURIComponent(parsed[0]), decodeURIComponent(parsed[1]));
|
49 | }
|
50 |
|
51 | KeyId.parse = parse;
|
52 |
|
53 | module.exports = {
|
54 | KeyId: KeyId,
|
55 | MalformedKeyIdError: MalformedKeyIdError
|
56 | };
|
57 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9rZXlpZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBLElBQUksU0FBUyxPQUFPLE9BQVAsQ0FBVDs7QUFFSixNQUFNLG1CQUFOLFNBQWtDLEtBQWxDLENBQXdDO0FBQ3RDLGNBQVksT0FBWixFQUFxQixLQUFyQixFQUE0QjtBQUMxQixVQUFNLE9BQU4sRUFEMEI7QUFFMUIsU0FBSyxJQUFMLEdBQVksS0FBSyxXQUFMLENBQWlCLElBQWpCLENBRmM7QUFHMUIsU0FBSyxPQUFMLEdBQWUsT0FBZixDQUgwQjtBQUkxQixTQUFLLE1BQUwsSUFBZSxLQUFmLENBSjBCO0FBSzFCLFVBQU0saUJBQU4sQ0FBd0IsSUFBeEIsRUFBOEIsS0FBSyxXQUFMLENBQWlCLElBQWpCLENBQTlCLENBTDBCO0dBQTVCOztBQVFBLE1BQUksS0FBSixHQUFZO0FBQ1YsV0FBTyxLQUFLLE1BQUwsQ0FBUCxDQURVO0dBQVo7Q0FURjs7QUFjQSxJQUFJLFVBQVUsT0FBTyxRQUFQLENBQVY7O0FBRUosTUFBTSxLQUFOLENBQVk7QUFDVixjQUFZLEdBQVosRUFBaUIsR0FBakIsRUFBc0I7QUFDcEIsVUFBTSxjQUFjLHVCQUFTLEdBQVQsa0NBQWQsQ0FEYztBQUVwQixVQUFNLFFBQVEsdUJBQVMsR0FBVCw0QkFBUixDQUZjO0FBR3BCLFNBQUssT0FBTCxJQUFnQixDQUFDLFdBQUQsRUFBYyxLQUFkLENBQWhCLENBSG9CO0dBQXRCOztBQU1BLE1BQUksV0FBSixHQUFrQjtBQUNoQixXQUFPLEtBQUssT0FBTCxFQUFjLENBQWQsQ0FBUCxDQURnQjtHQUFsQjs7QUFJQSxNQUFJLEtBQUosR0FBWTtBQUNWLFdBQU8sS0FBSyxPQUFMLEVBQWMsQ0FBZCxDQUFQLENBRFU7R0FBWjs7QUFJQSxhQUFXO0FBQ1QsV0FBTyxDQUFDLEdBQUUsbUJBQW1CLEtBQUssV0FBTCxDQUF0QixFQUF3QyxDQUF4QyxHQUEyQyxtQkFBbUIsS0FBSyxLQUFMLENBQTlELEVBQTBFLENBQWpGLENBRFM7R0FBWDtDQWZGOztBQW9CQSxTQUFTLEtBQVQsQ0FBZSxHQUFmLEVBQW9CO0FBQ2xCLFFBQU0sUUFBUSx1QkFBUyxHQUFULGlDQUFSLENBRFk7QUFFbEIsTUFBSSxTQUFTLE1BQU0sS0FBTixDQUFZLEdBQVosQ0FBVCxDQUZjO0FBR2xCLFNBQU8sSUFBSSxLQUFKLENBQVUsbUJBQW1CLE9BQU8sQ0FBUCxDQUFuQixDQUFWLEVBQXlDLG1CQUFtQixPQUFPLENBQVAsQ0FBbkIsQ0FBekMsQ0FBUCxDQUhrQjtDQUFwQjs7QUFNQSxNQUFNLEtBQU4sR0FBYyxLQUFkOztBQUVBLE9BQU8sT0FBUCxHQUFpQjtBQUNmLGNBRGU7QUFFZiwwQ0FGZTtDQUFqQiIsImZpbGUiOiJrZXlpZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtleWlkU2NoZW1hLCBwcmluY2lwYWxpZFNjaGVtYSwgaWRlbnRpZmllclNjaGVtYSB9IGZyb20gJy4vc2NoZW1hcy9rZXlpZC1zY2hlbWFzJztcbmltcG9ydCB7IHZhbGlkYXRlIH0gZnJvbSAnLi9zY2hlbWFzJztcbmxldCAkY2F1c2UgPSBTeW1ib2woJ2NhdXNlJyk7XG5cbmNsYXNzIE1hbGZvcm1lZEtleUlkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIGNhdXNlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpc1skY2F1c2VdID0gY2F1c2U7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgfVxuXG4gIGdldCBjYXVzZSgpIHtcbiAgICByZXR1cm4gdGhpc1skY2F1c2VdO1xuICB9XG59XG5cbmxldCAkcGFyc2VkID0gU3ltYm9sKCdwYXJzZWQnKTtcblxuY2xhc3MgS2V5SWQge1xuICBjb25zdHJ1Y3RvcihwSWQsIGtJZCkge1xuICAgIGNvbnN0IHByaW5jaXBhbElkID0gdmFsaWRhdGUocElkLCBwcmluY2lwYWxpZFNjaGVtYSk7XG4gICAgY29uc3Qga2V5SWQgPSB2YWxpZGF0ZShrSWQsIGtleWlkU2NoZW1hKTtcbiAgICB0aGlzWyRwYXJzZWRdID0gW3ByaW5jaXBhbElkLCBrZXlJZF07XG4gIH1cblxuICBnZXQgcHJpbmNpcGFsSWQoKSB7XG4gICAgcmV0dXJuIHRoaXNbJHBhcnNlZF1bMF07XG4gIH1cblxuICBnZXQga2V5SWQoKSB7XG4gICAgcmV0dXJuIHRoaXNbJHBhcnNlZF1bMV07XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMucHJpbmNpcGFsSWQpfS8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmtleUlkKX1gO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlKGtJZCkge1xuICBjb25zdCBrZXlJZCA9IHZhbGlkYXRlKGtJZCwgaWRlbnRpZmllclNjaGVtYSk7XG4gIGxldCBwYXJzZWQgPSBrZXlJZC5zcGxpdCgnLycpO1xuICByZXR1cm4gbmV3IEtleUlkKGRlY29kZVVSSUNvbXBvbmVudChwYXJzZWRbMF0pLCBkZWNvZGVVUklDb21wb25lbnQocGFyc2VkWzFdKSk7XG59XG5cbktleUlkLnBhcnNlID0gcGFyc2U7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBLZXlJZCxcbiAgTWFsZm9ybWVkS2V5SWRFcnJvclxufTtcbiJdfQ== |
\ | No newline at end of file |