@nmshd/transport 2.0.0-beta.4 → 2.0.0-beta.6
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.
- package/dist/buildInformation.js +5 -5
- package/dist/core/CoreCrypto.d.ts +1 -0
- package/dist/core/CoreCrypto.js +14 -12
- package/dist/core/CoreCrypto.js.map +1 -1
- package/dist/core/CoreSerializable.js.map +1 -1
- package/dist/core/CoreSerializableAsync.js.map +1 -1
- package/dist/core/CoreSynchronizable.js.map +1 -1
- package/dist/core/CoreUtil.js +1 -2
- package/dist/core/CoreUtil.js.map +1 -1
- package/dist/core/Reference.js +2 -2
- package/dist/core/Reference.js.map +1 -1
- package/dist/core/Transport.js +4 -1
- package/dist/core/Transport.js.map +1 -1
- package/dist/core/TransportController.d.ts +2 -2
- package/dist/core/TransportController.js +4 -6
- package/dist/core/TransportController.js.map +1 -1
- package/dist/core/TransportErrors.d.ts +5 -73
- package/dist/core/TransportErrors.js +10 -153
- package/dist/core/TransportErrors.js.map +1 -1
- package/dist/core/TransportLoggerFactory.js +1 -2
- package/dist/core/TransportLoggerFactory.js.map +1 -1
- package/dist/core/backbone/RESTClient.d.ts +4 -1
- package/dist/core/backbone/RESTClient.js +26 -31
- package/dist/core/backbone/RESTClient.js.map +1 -1
- package/dist/core/backbone/RESTClientAuthenticate.d.ts +2 -1
- package/dist/core/backbone/RESTClientAuthenticate.js.map +1 -1
- package/dist/core/types/CoreAddress.d.ts +1 -1
- package/dist/core/types/CoreAddress.js.map +1 -1
- package/dist/core/types/CoreDate.js +3 -4
- package/dist/core/types/CoreDate.js.map +1 -1
- package/dist/core/types/CoreHash.js.map +1 -1
- package/dist/core/types/CoreId.d.ts +1 -1
- package/dist/core/types/CoreId.js +1 -2
- package/dist/core/types/CoreId.js.map +1 -1
- package/dist/modules/accounts/AccountController.d.ts +2 -0
- package/dist/modules/accounts/AccountController.js +30 -8
- package/dist/modules/accounts/AccountController.js.map +1 -1
- package/dist/modules/accounts/IdentityController.d.ts +1 -1
- package/dist/modules/accounts/IdentityController.js +24 -4
- package/dist/modules/accounts/IdentityController.js.map +1 -1
- package/dist/modules/accounts/IdentityUtil.d.ts +1 -1
- package/dist/modules/accounts/IdentityUtil.js +3 -4
- package/dist/modules/accounts/IdentityUtil.js.map +1 -1
- package/dist/modules/accounts/data/Identity.js.map +1 -1
- package/dist/modules/accounts/data/IdentitySecretCredentials.js.map +1 -1
- package/dist/modules/certificates/data/Certificate.js.map +1 -1
- package/dist/modules/certificates/data/CertificateConstraint.js.map +1 -1
- package/dist/modules/certificates/data/CertificateContent.js.map +1 -1
- package/dist/modules/certificates/data/CertificateItem.js.map +1 -1
- package/dist/modules/certificates/data/constraints/CertificateBorderConstraint.js.map +1 -1
- package/dist/modules/certificates/data/constraints/CertificateCityConstraint.js.map +1 -1
- package/dist/modules/certificates/data/constraints/CertificateIdentityConstraint.js.map +1 -1
- package/dist/modules/certificates/data/constraints/CertificateTimeConstraint.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificateAuthorizationItem.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificateDelegateItem.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificatePrivateAttributeItem.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificatePrivateAttributeItemSource.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificatePublicAttributeItem.js.map +1 -1
- package/dist/modules/certificates/data/items/CertificateRoleItem.js.map +1 -1
- package/dist/modules/challenges/ChallengeController.js +26 -3
- package/dist/modules/challenges/ChallengeController.js.map +1 -1
- package/dist/modules/challenges/data/Challenge.js.map +1 -1
- package/dist/modules/challenges/data/ChallengeSigned.js.map +1 -1
- package/dist/modules/devices/DeviceController.d.ts +1 -1
- package/dist/modules/devices/DeviceController.js +41 -12
- package/dist/modules/devices/DeviceController.js.map +1 -1
- package/dist/modules/devices/DeviceSecretController.js +43 -13
- package/dist/modules/devices/DeviceSecretController.js.map +1 -1
- package/dist/modules/devices/DevicesController.js +1 -1
- package/dist/modules/devices/DevicesController.js.map +1 -1
- package/dist/modules/devices/local/Device.js.map +1 -1
- package/dist/modules/devices/local/DeviceSecretCredentials.js.map +1 -1
- package/dist/modules/devices/local/SendDeviceParameters.js.map +1 -1
- package/dist/modules/devices/transmission/DeviceSharedSecret.js.map +1 -1
- package/dist/modules/files/FileController.js +43 -9
- package/dist/modules/files/FileController.js.map +1 -1
- package/dist/modules/files/backbone/FileClient.d.ts +2 -1
- package/dist/modules/files/backbone/FileClient.js.map +1 -1
- package/dist/modules/files/local/CachedFile.js.map +1 -1
- package/dist/modules/files/local/File.js.map +1 -1
- package/dist/modules/files/local/SendFileParameters.js.map +1 -1
- package/dist/modules/files/transmission/FileMetadata.js.map +1 -1
- package/dist/modules/files/transmission/FileReference.js.map +1 -1
- package/dist/modules/messages/MessageController.js +67 -13
- package/dist/modules/messages/MessageController.js.map +1 -1
- package/dist/modules/messages/local/CachedMessage.js.map +1 -1
- package/dist/modules/messages/local/Message.js.map +1 -1
- package/dist/modules/messages/local/SendMessageParameters.js.map +1 -1
- package/dist/modules/messages/transmission/MessageEnvelope.js.map +1 -1
- package/dist/modules/messages/transmission/MessageEnvelopeRecipient.js.map +1 -1
- package/dist/modules/messages/transmission/MessagePlain.js.map +1 -1
- package/dist/modules/messages/transmission/MessageSignature.js.map +1 -1
- package/dist/modules/messages/transmission/MessageSigned.js.map +1 -1
- package/dist/modules/relationshipTemplates/RelationshipTemplateController.js +32 -4
- package/dist/modules/relationshipTemplates/RelationshipTemplateController.js.map +1 -1
- package/dist/modules/relationshipTemplates/local/CachedRelationshipTemplate.js.map +1 -1
- package/dist/modules/relationshipTemplates/local/RelationshipTemplate.js.map +1 -1
- package/dist/modules/relationshipTemplates/local/SendRelationshipTemplateParameters.js.map +1 -1
- package/dist/modules/relationshipTemplates/transmission/RelationshipTemplateContent.js.map +1 -1
- package/dist/modules/relationshipTemplates/transmission/RelationshipTemplatePublicKey.js.map +1 -1
- package/dist/modules/relationshipTemplates/transmission/RelationshipTemplateReference.js.map +1 -1
- package/dist/modules/relationshipTemplates/transmission/RelationshipTemplateSigned.js.map +1 -1
- package/dist/modules/relationships/RelationshipSecretController.js +88 -17
- package/dist/modules/relationships/RelationshipSecretController.js.map +1 -1
- package/dist/modules/relationships/RelationshipsController.d.ts +3 -3
- package/dist/modules/relationships/RelationshipsController.js +113 -60
- package/dist/modules/relationships/RelationshipsController.js.map +1 -1
- package/dist/modules/relationships/local/CachedRelationship.js.map +1 -1
- package/dist/modules/relationships/local/Relationship.js.map +1 -1
- package/dist/modules/relationships/local/SendRelationshipParameters.js.map +1 -1
- package/dist/modules/relationships/transmission/changes/RelationshipChange.js.map +1 -1
- package/dist/modules/relationships/transmission/changes/RelationshipChangeRequest.js.map +1 -1
- package/dist/modules/relationships/transmission/changes/RelationshipChangeResponse.js.map +1 -1
- package/dist/modules/relationships/transmission/requests/RelationshipCreationChangeRequestCipher.js.map +1 -1
- package/dist/modules/relationships/transmission/requests/RelationshipCreationChangeRequestContent.js.map +1 -1
- package/dist/modules/relationships/transmission/requests/RelationshipCreationChangeRequestSigned.js.map +1 -1
- package/dist/modules/relationships/transmission/responses/RelationshipCreationChangeResponseCipher.js.map +1 -1
- package/dist/modules/relationships/transmission/responses/RelationshipCreationChangeResponseContent.js.map +1 -1
- package/dist/modules/relationships/transmission/responses/RelationshipCreationChangeResponseSigned.js.map +1 -1
- package/dist/modules/secrets/SecretController.js +18 -4
- package/dist/modules/secrets/SecretController.js.map +1 -1
- package/dist/modules/secrets/data/SecretContainerCipher.js.map +1 -1
- package/dist/modules/secrets/data/SecretContainerPlain.js.map +1 -1
- package/dist/modules/sync/DatawalletModificationsProcessor.d.ts +1 -0
- package/dist/modules/sync/DatawalletModificationsProcessor.js +20 -3
- package/dist/modules/sync/DatawalletModificationsProcessor.js.map +1 -1
- package/dist/modules/sync/SyncController.d.ts +1 -0
- package/dist/modules/sync/SyncController.js +54 -25
- package/dist/modules/sync/SyncController.js.map +1 -1
- package/dist/modules/sync/local/DatawalletModification.js.map +1 -1
- package/dist/modules/tokens/TokenController.js +32 -4
- package/dist/modules/tokens/TokenController.js.map +1 -1
- package/dist/modules/tokens/local/CachedToken.js.map +1 -1
- package/dist/modules/tokens/local/SendTokenParameters.js.map +1 -1
- package/dist/modules/tokens/local/Token.js.map +1 -1
- package/dist/modules/tokens/transmission/TokenContentDeviceSharedSecret.js.map +1 -1
- package/dist/modules/tokens/transmission/TokenContentFile.js.map +1 -1
- package/dist/modules/tokens/transmission/TokenContentRelationshipTemplate.js.map +1 -1
- package/dist/modules/tokens/transmission/TokenReference.js.map +1 -1
- package/dist/util/PasswordGenerator.js +1 -2
- package/dist/util/PasswordGenerator.js.map +1 -1
- package/dist/util/Random.js +7 -8
- package/dist/util/Random.js.map +1 -1
- package/lib-web/nmshd.transport.js +3083 -9133
- package/lib-web/nmshd.transport.js.map +1 -1
- package/lib-web/nmshd.transport.min.js +1 -1
- package/lib-web/nmshd.transport.min.js.map +1 -1
- package/package.json +22 -22
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.RelationshipSecretController = void 0;
|
|
13
|
+
const ts_utils_1 = require("@js-soft/ts-utils");
|
|
4
14
|
const crypto_1 = require("@nmshd/crypto");
|
|
5
15
|
const core_1 = require("../../core");
|
|
6
16
|
const CoreUtil_1 = require("../../core/CoreUtil");
|
|
7
17
|
const TransportErrors_1 = require("../../core/TransportErrors");
|
|
8
18
|
const TransportIds_1 = require("../../core/TransportIds");
|
|
19
|
+
const CachedRelationshipTemplate_1 = require("../relationshipTemplates/local/CachedRelationshipTemplate");
|
|
9
20
|
const RelationshipTemplatePublicKey_1 = require("../relationshipTemplates/transmission/RelationshipTemplatePublicKey");
|
|
10
21
|
const SecretController_1 = require("../secrets/SecretController");
|
|
11
22
|
class RelationshipSecretController extends SecretController_1.SecretController {
|
|
@@ -21,13 +32,11 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
21
32
|
}
|
|
22
33
|
const secretContainer = await this.loadActiveSecretByName(secretIdAsString);
|
|
23
34
|
if (!secretContainer) {
|
|
24
|
-
throw TransportErrors_1.TransportErrors.general
|
|
25
|
-
.recordNotFound("CryptoRelationshipRequestSecrets | CryptoRelationshipSecrets", secretIdAsString)
|
|
26
|
-
.logWith(this._log);
|
|
35
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound("CryptoRelationshipRequestSecrets | CryptoRelationshipSecrets", secretIdAsString);
|
|
27
36
|
}
|
|
28
37
|
if (!(secretContainer.secret instanceof crypto_1.CryptoRelationshipRequestSecrets) &&
|
|
29
38
|
!(secretContainer.secret instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
30
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secretIdAsString)
|
|
39
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secretIdAsString);
|
|
31
40
|
}
|
|
32
41
|
const secret = secretContainer.secret;
|
|
33
42
|
this.cache.set(relationshipSecretId, secret);
|
|
@@ -43,10 +52,10 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
43
52
|
const templateKeyId = template.templateKey.id.toString();
|
|
44
53
|
const exchangeKeypairContainer = await this.loadActiveSecretByName(templateKeyId);
|
|
45
54
|
if (!exchangeKeypairContainer) {
|
|
46
|
-
throw TransportErrors_1.TransportErrors.general.recordNotFound(crypto_1.CryptoExchangeKeypair, templateKeyId)
|
|
55
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(crypto_1.CryptoExchangeKeypair, templateKeyId);
|
|
47
56
|
}
|
|
48
57
|
if (!(exchangeKeypairContainer.secret instanceof crypto_1.CryptoExchangeKeypair)) {
|
|
49
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(templateKeyId)
|
|
58
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(templateKeyId);
|
|
50
59
|
}
|
|
51
60
|
const exchangeKeypair = exchangeKeypairContainer.secret;
|
|
52
61
|
const secrets = await crypto_1.CryptoRelationshipSecrets.fromRelationshipRequest(publicRequestCrypto, exchangeKeypair);
|
|
@@ -56,12 +65,10 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
56
65
|
async getPublicResponse(relationshipSecretId) {
|
|
57
66
|
const secret = await this.loadActiveSecretByName(relationshipSecretId.toString());
|
|
58
67
|
if (!secret) {
|
|
59
|
-
throw TransportErrors_1.TransportErrors.general
|
|
60
|
-
.recordNotFound(crypto_1.CryptoRelationshipSecrets, relationshipSecretId.toString())
|
|
61
|
-
.logWith(this._log);
|
|
68
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(crypto_1.CryptoRelationshipSecrets, relationshipSecretId.toString());
|
|
62
69
|
}
|
|
63
70
|
if (!(secret.secret instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
64
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secret.id.toString())
|
|
71
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secret.id.toString());
|
|
65
72
|
}
|
|
66
73
|
const publicResponse = secret.secret.toPublicResponse();
|
|
67
74
|
return publicResponse;
|
|
@@ -69,7 +76,7 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
69
76
|
async convertSecrets(relationshipSecretId, response) {
|
|
70
77
|
const request = await this.getSecret(relationshipSecretId);
|
|
71
78
|
if (request instanceof crypto_1.CryptoRelationshipSecrets) {
|
|
72
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType()
|
|
79
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType();
|
|
73
80
|
}
|
|
74
81
|
const secrets = await crypto_1.CryptoRelationshipSecrets.fromRelationshipResponse(response, request);
|
|
75
82
|
const container = await this.succeedSecretWithName(secrets, relationshipSecretId.toString());
|
|
@@ -94,7 +101,7 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
94
101
|
const buffer = CoreUtil_1.CoreUtil.toBuffer(content);
|
|
95
102
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
96
103
|
if (!(secrets instanceof crypto_1.CryptoRelationshipRequestSecrets)) {
|
|
97
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id)
|
|
104
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id);
|
|
98
105
|
}
|
|
99
106
|
return await secrets.encryptRequest(buffer);
|
|
100
107
|
}
|
|
@@ -102,14 +109,14 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
102
109
|
const buffer = CoreUtil_1.CoreUtil.toBuffer(content);
|
|
103
110
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
104
111
|
if (!(secrets instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
105
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id)
|
|
112
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id);
|
|
106
113
|
}
|
|
107
114
|
return await secrets.encrypt(buffer);
|
|
108
115
|
}
|
|
109
116
|
async decryptRequest(relationshipSecretId, cipher) {
|
|
110
117
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
111
118
|
if (!(secrets instanceof crypto_1.CryptoRelationshipRequestSecrets) && !(secrets instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
112
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(relationshipSecretId.toString())
|
|
119
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(relationshipSecretId.toString());
|
|
113
120
|
}
|
|
114
121
|
return await secrets.decryptRequest(cipher);
|
|
115
122
|
}
|
|
@@ -126,7 +133,7 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
126
133
|
async decryptPeer(relationshipSecretId, cipher, omitCounterCheck = false) {
|
|
127
134
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
128
135
|
if (!(secrets instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
129
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id)
|
|
136
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id);
|
|
130
137
|
}
|
|
131
138
|
return await secrets.decryptPeer(cipher, omitCounterCheck);
|
|
132
139
|
}
|
|
@@ -137,7 +144,7 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
137
144
|
async decryptOwn(relationshipSecretId, cipher) {
|
|
138
145
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
139
146
|
if (!(secrets instanceof crypto_1.CryptoRelationshipSecrets)) {
|
|
140
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id)
|
|
147
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id);
|
|
141
148
|
}
|
|
142
149
|
return await secrets.decryptOwn(cipher);
|
|
143
150
|
}
|
|
@@ -155,11 +162,75 @@ class RelationshipSecretController extends SecretController_1.SecretController {
|
|
|
155
162
|
const bufferToVerify = CoreUtil_1.CoreUtil.toBuffer(content);
|
|
156
163
|
const secrets = await this.getSecret(relationshipSecretId);
|
|
157
164
|
if (secrets instanceof crypto_1.CryptoRelationshipRequestSecrets) {
|
|
158
|
-
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id)
|
|
165
|
+
throw TransportErrors_1.TransportErrors.secrets.wrongSecretType(secrets.id);
|
|
159
166
|
}
|
|
160
167
|
const valid = await secrets.verifyPeer(bufferToVerify, signature);
|
|
161
168
|
return valid;
|
|
162
169
|
}
|
|
163
170
|
}
|
|
171
|
+
__decorate([
|
|
172
|
+
(0, ts_utils_1.log)(),
|
|
173
|
+
__metadata("design:type", Function),
|
|
174
|
+
__metadata("design:paramtypes", [core_1.CoreId]),
|
|
175
|
+
__metadata("design:returntype", Promise)
|
|
176
|
+
], RelationshipSecretController.prototype, "getSecret", null);
|
|
177
|
+
__decorate([
|
|
178
|
+
(0, ts_utils_1.log)(),
|
|
179
|
+
__metadata("design:type", Function),
|
|
180
|
+
__metadata("design:paramtypes", [core_1.CoreId,
|
|
181
|
+
CachedRelationshipTemplate_1.CachedRelationshipTemplate,
|
|
182
|
+
crypto_1.CryptoRelationshipPublicRequest]),
|
|
183
|
+
__metadata("design:returntype", Promise)
|
|
184
|
+
], RelationshipSecretController.prototype, "createTemplatorSecrets", null);
|
|
185
|
+
__decorate([
|
|
186
|
+
(0, ts_utils_1.log)(),
|
|
187
|
+
__metadata("design:type", Function),
|
|
188
|
+
__metadata("design:paramtypes", [core_1.CoreId]),
|
|
189
|
+
__metadata("design:returntype", Promise)
|
|
190
|
+
], RelationshipSecretController.prototype, "getPublicResponse", null);
|
|
191
|
+
__decorate([
|
|
192
|
+
(0, ts_utils_1.log)(),
|
|
193
|
+
__metadata("design:type", Function),
|
|
194
|
+
__metadata("design:paramtypes", [core_1.CoreId,
|
|
195
|
+
crypto_1.CryptoRelationshipPublicResponse]),
|
|
196
|
+
__metadata("design:returntype", Promise)
|
|
197
|
+
], RelationshipSecretController.prototype, "convertSecrets", null);
|
|
198
|
+
__decorate([
|
|
199
|
+
(0, ts_utils_1.log)(),
|
|
200
|
+
__metadata("design:type", Function),
|
|
201
|
+
__metadata("design:paramtypes", [core_1.CoreId, Object]),
|
|
202
|
+
__metadata("design:returntype", Promise)
|
|
203
|
+
], RelationshipSecretController.prototype, "encryptRequest", null);
|
|
204
|
+
__decorate([
|
|
205
|
+
(0, ts_utils_1.log)(),
|
|
206
|
+
__metadata("design:type", Function),
|
|
207
|
+
__metadata("design:paramtypes", [core_1.CoreId, Object]),
|
|
208
|
+
__metadata("design:returntype", Promise)
|
|
209
|
+
], RelationshipSecretController.prototype, "encrypt", null);
|
|
210
|
+
__decorate([
|
|
211
|
+
(0, ts_utils_1.log)(),
|
|
212
|
+
__metadata("design:type", Function),
|
|
213
|
+
__metadata("design:paramtypes", [core_1.CoreId, crypto_1.CryptoCipher]),
|
|
214
|
+
__metadata("design:returntype", Promise)
|
|
215
|
+
], RelationshipSecretController.prototype, "decryptRequest", null);
|
|
216
|
+
__decorate([
|
|
217
|
+
(0, ts_utils_1.log)(),
|
|
218
|
+
__metadata("design:type", Function),
|
|
219
|
+
__metadata("design:paramtypes", [core_1.CoreId,
|
|
220
|
+
crypto_1.CryptoCipher, Object]),
|
|
221
|
+
__metadata("design:returntype", Promise)
|
|
222
|
+
], RelationshipSecretController.prototype, "decryptPeer", null);
|
|
223
|
+
__decorate([
|
|
224
|
+
(0, ts_utils_1.log)(),
|
|
225
|
+
__metadata("design:type", Function),
|
|
226
|
+
__metadata("design:paramtypes", [core_1.CoreId, crypto_1.CryptoCipher]),
|
|
227
|
+
__metadata("design:returntype", Promise)
|
|
228
|
+
], RelationshipSecretController.prototype, "decryptOwn", null);
|
|
229
|
+
__decorate([
|
|
230
|
+
(0, ts_utils_1.log)(),
|
|
231
|
+
__metadata("design:type", Function),
|
|
232
|
+
__metadata("design:paramtypes", [core_1.CoreId, Object, crypto_1.CryptoSignature]),
|
|
233
|
+
__metadata("design:returntype", Promise)
|
|
234
|
+
], RelationshipSecretController.prototype, "verifyPeer", null);
|
|
164
235
|
exports.RelationshipSecretController = RelationshipSecretController;
|
|
165
236
|
//# sourceMappingURL=RelationshipSecretController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipSecretController.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipSecretController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RelationshipSecretController.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipSecretController.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,6 @@ export declare class RelationshipsController extends TransportController {
|
|
|
30
30
|
verifyIdentity(relationship: Relationship, content: CoreBuffer, signature: CryptoSignature): Promise<boolean>;
|
|
31
31
|
sendRelationship(parameters: ISendRelationshipParameters): Promise<Relationship>;
|
|
32
32
|
setRelationshipMetadata(idOrRelationship: CoreId | Relationship, metadata: ISerializable): Promise<Relationship>;
|
|
33
|
-
requestTermination(): void;
|
|
34
33
|
acceptChange(change: RelationshipChange, content?: ICoreSerializable): Promise<Relationship>;
|
|
35
34
|
rejectChange(change: RelationshipChange, content?: ICoreSerializable): Promise<Relationship>;
|
|
36
35
|
revokeChange(change: RelationshipChange, content?: ICoreSerializable): Promise<Relationship>;
|
|
@@ -45,9 +44,10 @@ export declare class RelationshipsController extends TransportController {
|
|
|
45
44
|
private decryptCreationChangeResponse;
|
|
46
45
|
private updatePendingRelationshipWithPeerResponse;
|
|
47
46
|
private createNewRelationshipByIncomingCreationChange;
|
|
48
|
-
private applyTerminationChange;
|
|
49
|
-
private applyTerminationCancellationChange;
|
|
50
47
|
private completeChange;
|
|
51
48
|
private encryptRevokeContent;
|
|
52
49
|
private encryptAcceptRejectContent;
|
|
50
|
+
private throwWrongChangeType;
|
|
51
|
+
private newChangeResponseMissingError;
|
|
52
|
+
private newEmptyOrInvalidContentError;
|
|
53
53
|
}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.RelationshipsController = void 0;
|
|
13
|
+
const ts_utils_1 = require("@js-soft/ts-utils");
|
|
4
14
|
const crypto_1 = require("@nmshd/crypto");
|
|
5
15
|
const ts_simple_nameof_1 = require("ts-simple-nameof");
|
|
6
16
|
const core_1 = require("../../core");
|
|
@@ -38,7 +48,7 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
38
48
|
}
|
|
39
49
|
async getRelationships(query) {
|
|
40
50
|
const relationshipDocs = await this.relationships.find(query);
|
|
41
|
-
return
|
|
51
|
+
return this.parseArray(relationshipDocs, Relationship_1.Relationship);
|
|
42
52
|
}
|
|
43
53
|
async updateCache(ids) {
|
|
44
54
|
if (ids.length < 1) {
|
|
@@ -67,9 +77,8 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
67
77
|
}
|
|
68
78
|
async updateCacheOfExistingRelationshipInDb(id, response) {
|
|
69
79
|
const relationshipDoc = await this.relationships.read(id);
|
|
70
|
-
if (!relationshipDoc)
|
|
71
|
-
throw TransportErrors_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, id)
|
|
72
|
-
}
|
|
80
|
+
if (!relationshipDoc)
|
|
81
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, id);
|
|
73
82
|
const relationship = Relationship_1.Relationship.from(relationshipDoc);
|
|
74
83
|
await this.updateCacheOfRelationship(relationship, response);
|
|
75
84
|
await this.relationships.update(relationshipDoc, relationship);
|
|
@@ -111,7 +120,7 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
111
120
|
parameters = SendRelationshipParameters_1.SendRelationshipParameters.from(parameters);
|
|
112
121
|
const template = parameters.template;
|
|
113
122
|
if (!template.cache) {
|
|
114
|
-
throw TransportErrors_1.TransportErrors.general.cacheEmpty(RelationshipTemplate_1.RelationshipTemplate, template.id.toString())
|
|
123
|
+
throw TransportErrors_1.TransportErrors.general.cacheEmpty(RelationshipTemplate_1.RelationshipTemplate, template.id.toString());
|
|
115
124
|
}
|
|
116
125
|
const secretId = await TransportIds_1.TransportIds.relationshipSecret.generate();
|
|
117
126
|
const { requestCipher, requestContent } = await this.prepareRequest(secretId, template, parameters.content);
|
|
@@ -127,18 +136,14 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
127
136
|
async setRelationshipMetadata(idOrRelationship, metadata) {
|
|
128
137
|
const id = idOrRelationship instanceof core_1.CoreId ? idOrRelationship.toString() : idOrRelationship.id.toString();
|
|
129
138
|
const relationshipDoc = await this.relationships.read(id);
|
|
130
|
-
if (!relationshipDoc)
|
|
131
|
-
throw TransportErrors_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, id.toString())
|
|
132
|
-
}
|
|
139
|
+
if (!relationshipDoc)
|
|
140
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, id.toString());
|
|
133
141
|
const relationship = Relationship_1.Relationship.from(relationshipDoc);
|
|
134
142
|
relationship.metadata = metadata;
|
|
135
143
|
relationship.metadataModifiedAt = core_1.CoreDate.utc();
|
|
136
144
|
await this.relationships.update(relationshipDoc, relationship);
|
|
137
145
|
return relationship;
|
|
138
146
|
}
|
|
139
|
-
requestTermination() {
|
|
140
|
-
throw TransportErrors_1.TransportErrors.general.notImplemented();
|
|
141
|
-
}
|
|
142
147
|
async acceptChange(change, content) {
|
|
143
148
|
return await this.completeChange(RelationshipChangeStatus_1.RelationshipChangeStatus.Accepted, change, content);
|
|
144
149
|
}
|
|
@@ -182,7 +187,7 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
182
187
|
}
|
|
183
188
|
async prepareRequest(relationshipSecretId, template, content) {
|
|
184
189
|
if (!template.cache) {
|
|
185
|
-
throw TransportErrors_1.TransportErrors.general.cacheEmpty(RelationshipTemplate_1.RelationshipTemplate, template.id.toString())
|
|
190
|
+
throw TransportErrors_1.TransportErrors.general.cacheEmpty(RelationshipTemplate_1.RelationshipTemplate, template.id.toString());
|
|
186
191
|
}
|
|
187
192
|
const requestPublic = await this.secrets.createRequestorSecrets(template.cache, relationshipSecretId);
|
|
188
193
|
const requestContent = RelationshipCreationChangeRequestContent_1.RelationshipCreationChangeRequestContent.from({
|
|
@@ -217,11 +222,10 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
217
222
|
case RelationshipChangeType_1.RelationshipChangeType.Creation:
|
|
218
223
|
return await this.applyCreationChange(change);
|
|
219
224
|
case RelationshipChangeType_1.RelationshipChangeType.Termination:
|
|
220
|
-
return await this.applyTerminationChange(change);
|
|
221
225
|
case RelationshipChangeType_1.RelationshipChangeType.TerminationCancellation:
|
|
222
|
-
|
|
226
|
+
throw TransportErrors_1.TransportErrors.general.notSupported();
|
|
223
227
|
default:
|
|
224
|
-
throw TransportErrors_1.TransportErrors.general.incompatibleBackbone()
|
|
228
|
+
throw TransportErrors_1.TransportErrors.general.incompatibleBackbone();
|
|
225
229
|
}
|
|
226
230
|
}
|
|
227
231
|
async applyCreationChange(change) {
|
|
@@ -245,9 +249,8 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
245
249
|
return newRelationship;
|
|
246
250
|
}
|
|
247
251
|
async parseCreationChange(change, relationshipSecretId, templateId) {
|
|
248
|
-
if (change.type !== RelationshipChangeType_1.RelationshipChangeType.Creation)
|
|
249
|
-
|
|
250
|
-
}
|
|
252
|
+
if (change.type !== RelationshipChangeType_1.RelationshipChangeType.Creation)
|
|
253
|
+
this.throwWrongChangeType(change.type);
|
|
251
254
|
const promises = [];
|
|
252
255
|
promises.push(this.decryptCreationChangeRequest(change.request, relationshipSecretId, templateId));
|
|
253
256
|
const hasRelationshipSecret = await this.secrets.hasCryptoRelationshipSecrets(relationshipSecretId);
|
|
@@ -259,9 +262,8 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
259
262
|
return creationChange;
|
|
260
263
|
}
|
|
261
264
|
async decryptCreationChangeRequest(change, secretId, templateId) {
|
|
262
|
-
if (!change.content)
|
|
263
|
-
throw
|
|
264
|
-
}
|
|
265
|
+
if (!change.content)
|
|
266
|
+
throw this.newEmptyOrInvalidContentError();
|
|
265
267
|
const isOwnChange = this.parent.identity.isMe(core_1.CoreAddress.from(change.createdBy));
|
|
266
268
|
const requestCipher = RelationshipCreationChangeRequestCipher_1.RelationshipCreationChangeRequestCipher.fromBase64(change.content);
|
|
267
269
|
const signedRequestBuffer = await this.secrets.decryptRequest(secretId, requestCipher.cipher);
|
|
@@ -274,23 +276,21 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
274
276
|
relationshipSignatureValid = await this.secrets.verifyPeer(secretId, crypto_1.CoreBuffer.fromUtf8(signedRequest.serializedRequest), signedRequest.relationshipSignature);
|
|
275
277
|
}
|
|
276
278
|
if (!relationshipSignatureValid) {
|
|
277
|
-
throw TransportErrors_1.TransportErrors.general.signatureNotValid("relationshipRequest")
|
|
279
|
+
throw TransportErrors_1.TransportErrors.general.signatureNotValid("relationshipRequest");
|
|
278
280
|
}
|
|
279
281
|
const requestContent = RelationshipCreationChangeRequestContent_1.RelationshipCreationChangeRequestContent.deserialize(signedRequest.serializedRequest);
|
|
280
|
-
if (requestContent.templateId.
|
|
281
|
-
throw
|
|
282
|
+
if (!requestContent.templateId.equals(templateId)) {
|
|
283
|
+
throw new Error("The relationship request contains a wrong template id.");
|
|
282
284
|
}
|
|
283
285
|
return requestContent;
|
|
284
286
|
}
|
|
285
287
|
async decryptCreationChangeResponse(change, relationshipSecretId) {
|
|
286
|
-
if (!change.response)
|
|
287
|
-
throw
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
throw TransportErrors_1.TransportErrors.relationships.wrongChangeType(change.type).logWith(this._log);
|
|
291
|
-
}
|
|
288
|
+
if (!change.response)
|
|
289
|
+
throw this.newChangeResponseMissingError(change.id);
|
|
290
|
+
if (change.type !== RelationshipChangeType_1.RelationshipChangeType.Creation)
|
|
291
|
+
this.throwWrongChangeType(change.type);
|
|
292
292
|
if (!change.response.content) {
|
|
293
|
-
throw
|
|
293
|
+
throw this.newEmptyOrInvalidContentError(change);
|
|
294
294
|
}
|
|
295
295
|
const isOwnChange = this.parent.identity.isMe(core_1.CoreAddress.from(change.response.createdBy));
|
|
296
296
|
const cipher = RelationshipCreationChangeResponseCipher_1.RelationshipCreationChangeResponseCipher.fromBase64(change.response.content);
|
|
@@ -315,11 +315,11 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
315
315
|
relationshipSignatureValid = await this.secrets.verifyPeer(relationshipSecretId, crypto_1.CoreBuffer.fromUtf8(signedResponse.serializedResponse), signedResponse.relationshipSignature);
|
|
316
316
|
}
|
|
317
317
|
if (!relationshipSignatureValid) {
|
|
318
|
-
throw TransportErrors_1.TransportErrors.general.signatureNotValid("relationshipResponse")
|
|
318
|
+
throw TransportErrors_1.TransportErrors.general.signatureNotValid("relationshipResponse");
|
|
319
319
|
}
|
|
320
320
|
const responseContent = RelationshipCreationChangeResponseContent_1.RelationshipCreationChangeResponseContent.deserialize(signedResponse.serializedResponse);
|
|
321
|
-
if (responseContent.relationshipId.
|
|
322
|
-
throw
|
|
321
|
+
if (!responseContent.relationshipId.equals(change.relationshipId)) {
|
|
322
|
+
throw new Error("The relationship response contains a wrong relationship id.");
|
|
323
323
|
}
|
|
324
324
|
return responseContent;
|
|
325
325
|
}
|
|
@@ -332,16 +332,15 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
332
332
|
if (!relationship.cache) {
|
|
333
333
|
await this.updateCacheOfRelationship(relationship, undefined);
|
|
334
334
|
}
|
|
335
|
-
if (!change.response)
|
|
336
|
-
throw
|
|
337
|
-
}
|
|
335
|
+
if (!change.response)
|
|
336
|
+
throw this.newChangeResponseMissingError(change.id);
|
|
338
337
|
if (!change.response.content) {
|
|
339
|
-
throw
|
|
338
|
+
throw this.newEmptyOrInvalidContentError(change);
|
|
340
339
|
}
|
|
341
340
|
const cipher = RelationshipCreationChangeResponseCipher_1.RelationshipCreationChangeResponseCipher.fromBase64(change.response.content);
|
|
342
341
|
if (change.status !== RelationshipChangeStatus_1.RelationshipChangeStatus.Revoked) {
|
|
343
342
|
if (!cipher.publicResponseCrypto) {
|
|
344
|
-
throw
|
|
343
|
+
throw new Error("The response crypto is missing.");
|
|
345
344
|
}
|
|
346
345
|
await this.secrets.convertSecrets(relationship.relationshipSecretId, cipher.publicResponseCrypto);
|
|
347
346
|
}
|
|
@@ -362,7 +361,7 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
362
361
|
relationship.toRevoked(response);
|
|
363
362
|
break;
|
|
364
363
|
default:
|
|
365
|
-
throw TransportErrors_1.TransportErrors.general.incompatibleBackbone()
|
|
364
|
+
throw TransportErrors_1.TransportErrors.general.incompatibleBackbone();
|
|
366
365
|
}
|
|
367
366
|
await this.relationships.update(relationshipDoc, relationship);
|
|
368
367
|
return relationship;
|
|
@@ -371,15 +370,12 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
371
370
|
const backboneRelationship = (await this.client.getRelationship(change.relationshipId)).value;
|
|
372
371
|
const templateId = core_1.CoreId.from(backboneRelationship.relationshipTemplateId);
|
|
373
372
|
const template = await this.parent.relationshipTemplates.getRelationshipTemplate(templateId);
|
|
374
|
-
if (!template)
|
|
375
|
-
throw TransportErrors_1.TransportErrors.general.recordNotFound(RelationshipTemplate_1.RelationshipTemplate, templateId.toString())
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
if (!change.request.content) {
|
|
381
|
-
throw TransportErrors_1.TransportErrors.relationships.emptyOrInvalidContent(change).logWith(this._log);
|
|
382
|
-
}
|
|
373
|
+
if (!template)
|
|
374
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(RelationshipTemplate_1.RelationshipTemplate, templateId.toString());
|
|
375
|
+
if (!template.cache)
|
|
376
|
+
throw TransportErrors_1.TransportErrors.general.cacheEmpty(RelationshipTemplate_1.RelationshipTemplate, template.id.toString());
|
|
377
|
+
if (!change.request.content)
|
|
378
|
+
throw this.newEmptyOrInvalidContentError(change);
|
|
383
379
|
const secretId = await TransportIds_1.TransportIds.relationshipSecret.generate();
|
|
384
380
|
const requestCipher = RelationshipCreationChangeRequestCipher_1.RelationshipCreationChangeRequestCipher.fromBase64(change.request.content);
|
|
385
381
|
await this.secrets.createTemplatorSecrets(secretId, template.cache, requestCipher.publicRequestCrypto);
|
|
@@ -389,18 +385,10 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
389
385
|
await this.relationships.create(relationship);
|
|
390
386
|
return relationship;
|
|
391
387
|
}
|
|
392
|
-
applyTerminationChange(_change) {
|
|
393
|
-
throw TransportErrors_1.TransportErrors.general.notImplemented();
|
|
394
|
-
}
|
|
395
|
-
applyTerminationCancellationChange(_change) {
|
|
396
|
-
throw TransportErrors_1.TransportErrors.general.notImplemented();
|
|
397
|
-
}
|
|
398
388
|
async completeChange(targetStatus, change, content) {
|
|
399
389
|
const relationshipDoc = await this.relationships.read(change.relationshipId.toString());
|
|
400
390
|
if (!relationshipDoc) {
|
|
401
|
-
throw TransportErrors_1.TransportErrors.general
|
|
402
|
-
.recordNotFound(Relationship_1.Relationship, change.relationshipId.toString())
|
|
403
|
-
.logWith(this._log);
|
|
391
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, change.relationshipId.toString());
|
|
404
392
|
}
|
|
405
393
|
const relationship = Relationship_1.Relationship.from(relationshipDoc);
|
|
406
394
|
if (!relationship.cache) {
|
|
@@ -411,10 +399,10 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
411
399
|
}
|
|
412
400
|
const queriedChange = relationship.cache.changes.find((r) => r.id.toString() === change.id.toString());
|
|
413
401
|
if (!queriedChange) {
|
|
414
|
-
throw TransportErrors_1.TransportErrors.general.recordNotFound(RelationshipChange_1.RelationshipChange, change.id.toString())
|
|
402
|
+
throw TransportErrors_1.TransportErrors.general.recordNotFound(RelationshipChange_1.RelationshipChange, change.id.toString());
|
|
415
403
|
}
|
|
416
404
|
if (queriedChange.status !== RelationshipChangeStatus_1.RelationshipChangeStatus.Pending) {
|
|
417
|
-
throw TransportErrors_1.TransportErrors.relationships.wrongChangeStatus(queriedChange.status)
|
|
405
|
+
throw TransportErrors_1.TransportErrors.relationships.wrongChangeStatus(queriedChange.status);
|
|
418
406
|
}
|
|
419
407
|
let encryptedContent;
|
|
420
408
|
if (content) {
|
|
@@ -491,6 +479,71 @@ class RelationshipsController extends core_1.TransportController {
|
|
|
491
479
|
});
|
|
492
480
|
return responseCipher.toBase64();
|
|
493
481
|
}
|
|
482
|
+
throwWrongChangeType(type) {
|
|
483
|
+
throw new Error(`The relationship change has the wrong type (${type}) to run this operation`);
|
|
484
|
+
}
|
|
485
|
+
newChangeResponseMissingError(changeId) {
|
|
486
|
+
return new Error(`The response of the relationship change (${changeId}) is missing`);
|
|
487
|
+
}
|
|
488
|
+
newEmptyOrInvalidContentError(change) {
|
|
489
|
+
return new Error(`The content property of the relationship change ${change === null || change === void 0 ? void 0 : change.id} is missing or invalid`);
|
|
490
|
+
}
|
|
494
491
|
}
|
|
492
|
+
__decorate([
|
|
493
|
+
(0, ts_utils_1.log)(),
|
|
494
|
+
__metadata("design:type", Function),
|
|
495
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
496
|
+
__metadata("design:returntype", Promise)
|
|
497
|
+
], RelationshipsController.prototype, "updateCacheOfExistingRelationshipInDb", null);
|
|
498
|
+
__decorate([
|
|
499
|
+
(0, ts_utils_1.log)(),
|
|
500
|
+
__metadata("design:type", Function),
|
|
501
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
502
|
+
__metadata("design:returntype", Promise)
|
|
503
|
+
], RelationshipsController.prototype, "setRelationshipMetadata", null);
|
|
504
|
+
__decorate([
|
|
505
|
+
(0, ts_utils_1.log)(),
|
|
506
|
+
__metadata("design:type", Function),
|
|
507
|
+
__metadata("design:paramtypes", [Object]),
|
|
508
|
+
__metadata("design:returntype", Promise)
|
|
509
|
+
], RelationshipsController.prototype, "applyChange", null);
|
|
510
|
+
__decorate([
|
|
511
|
+
(0, ts_utils_1.log)(),
|
|
512
|
+
__metadata("design:type", Function),
|
|
513
|
+
__metadata("design:paramtypes", [Object, core_1.CoreId,
|
|
514
|
+
core_1.CoreId]),
|
|
515
|
+
__metadata("design:returntype", Promise)
|
|
516
|
+
], RelationshipsController.prototype, "parseCreationChange", null);
|
|
517
|
+
__decorate([
|
|
518
|
+
(0, ts_utils_1.log)(),
|
|
519
|
+
__metadata("design:type", Function),
|
|
520
|
+
__metadata("design:paramtypes", [Object, core_1.CoreId,
|
|
521
|
+
core_1.CoreId]),
|
|
522
|
+
__metadata("design:returntype", Promise)
|
|
523
|
+
], RelationshipsController.prototype, "decryptCreationChangeRequest", null);
|
|
524
|
+
__decorate([
|
|
525
|
+
(0, ts_utils_1.log)(),
|
|
526
|
+
__metadata("design:type", Function),
|
|
527
|
+
__metadata("design:paramtypes", [Object, core_1.CoreId]),
|
|
528
|
+
__metadata("design:returntype", Promise)
|
|
529
|
+
], RelationshipsController.prototype, "decryptCreationChangeResponse", null);
|
|
530
|
+
__decorate([
|
|
531
|
+
(0, ts_utils_1.log)(),
|
|
532
|
+
__metadata("design:type", Function),
|
|
533
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
534
|
+
__metadata("design:returntype", Promise)
|
|
535
|
+
], RelationshipsController.prototype, "updatePendingRelationshipWithPeerResponse", null);
|
|
536
|
+
__decorate([
|
|
537
|
+
(0, ts_utils_1.log)(),
|
|
538
|
+
__metadata("design:type", Function),
|
|
539
|
+
__metadata("design:paramtypes", [Object]),
|
|
540
|
+
__metadata("design:returntype", Promise)
|
|
541
|
+
], RelationshipsController.prototype, "createNewRelationshipByIncomingCreationChange", null);
|
|
542
|
+
__decorate([
|
|
543
|
+
(0, ts_utils_1.log)(),
|
|
544
|
+
__metadata("design:type", Function),
|
|
545
|
+
__metadata("design:paramtypes", [String, RelationshipChange_1.RelationshipChange, Object]),
|
|
546
|
+
__metadata("design:returntype", Promise)
|
|
547
|
+
], RelationshipsController.prototype, "completeChange", null);
|
|
495
548
|
exports.RelationshipsController = RelationshipsController;
|
|
496
549
|
//# sourceMappingURL=RelationshipsController.js.map
|