@nmshd/transport 1.1.9 → 1.1.10

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.
@@ -4,11 +4,11 @@ exports.buildInformation = void 0;
4
4
  const ts_serval_1 = require("@js-soft/ts-serval");
5
5
  const crypto_1 = require("@nmshd/crypto");
6
6
  exports.buildInformation = {
7
- version: "1.1.9",
8
- build: "21",
9
- date: "2022-02-04T12:41:52+00:00",
10
- commit: "a3d954a1746fd2cf627ecc834de1bafe59b7db8d",
11
- dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.1","@js-soft/ts-utils":"1.1.1","axios":"^0.25.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.3.0","qs":"^6.10.3","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
7
+ version: "1.1.10",
8
+ build: "22",
9
+ date: "2022-02-21T10:57:30+00:00",
10
+ commit: "c5a9ae56d5ed7ce0dd69a16080babe841ceed26d",
11
+ dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.1","@js-soft/ts-utils":"1.1.1","axios":"^0.26.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.3.0","qs":"^6.10.3","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
12
12
  libraries: {
13
13
  crypto: crypto_1.buildInformation,
14
14
  serval: ts_serval_1.buildInformation
@@ -9,8 +9,11 @@ export declare class ChallengeController extends TransportController {
9
9
  private authClient;
10
10
  constructor(parent: AccountController);
11
11
  init(): Promise<this>;
12
- private verifyChallengeLocally;
13
- checkChallenge(signedChallenge: ChallengeSigned, requiredType?: ChallengeType): Promise<Relationship | undefined>;
12
+ private validateChallengeLocally;
13
+ validateChallenge(signedChallenge: ChallengeSigned, requiredType?: ChallengeType): Promise<{
14
+ isValid: boolean;
15
+ correspondingRelationship?: Relationship;
16
+ }>;
14
17
  createAccountCreationChallenge(identity: CryptoSignatureKeypair): Promise<ChallengeSigned>;
15
18
  createChallenge(type?: ChallengeType, relationship?: Relationship): Promise<ChallengeSigned>;
16
19
  }
@@ -19,51 +19,45 @@ class ChallengeController extends TransportController_1.TransportController {
19
19
  this.authClient = new ChallengeAuthClient_1.ChallengeAuthClient(this.config, this.parent.authenticator);
20
20
  return this;
21
21
  }
22
- async verifyChallengeLocally(challenge, signedChallenge) {
23
- if (!challenge.createdBy) {
24
- return;
25
- }
22
+ async validateChallengeLocally(challenge, signedChallenge) {
23
+ if (!challenge.createdBy)
24
+ return { isValid: false };
26
25
  const relationship = await this.parent.relationships.getActiveRelationshipToIdentity(challenge.createdBy);
27
26
  if (!relationship) {
28
27
  throw core_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, challenge.createdBy.toString());
29
28
  }
30
29
  const challengeBuffer = crypto_1.CoreBuffer.fromUtf8(signedChallenge.challenge);
31
- let verified = false;
30
+ let isValid = false;
32
31
  switch (challenge.type) {
33
32
  case Challenge_1.ChallengeType.Identity:
34
- verified = await this.parent.relationships.verifyIdentity(relationship, challengeBuffer, signedChallenge.signature);
33
+ isValid = await this.parent.relationships.verifyIdentity(relationship, challengeBuffer, signedChallenge.signature);
35
34
  break;
36
35
  case Challenge_1.ChallengeType.Device:
37
36
  throw core_1.TransportErrors.general.notImplemented().logWith(this._log);
38
37
  case Challenge_1.ChallengeType.Relationship:
39
- verified = await this.parent.relationships.verify(relationship, challengeBuffer, signedChallenge.signature);
38
+ isValid = await this.parent.relationships.verify(relationship, challengeBuffer, signedChallenge.signature);
40
39
  break;
41
40
  }
42
- if (!verified) {
43
- return;
44
- }
45
- return relationship;
41
+ if (!isValid)
42
+ return { isValid: false };
43
+ return { isValid: true, correspondingRelationship: relationship };
46
44
  }
47
- async checkChallenge(signedChallenge, requiredType) {
45
+ async validateChallenge(signedChallenge, requiredType) {
48
46
  const challenge = await Challenge_1.Challenge.deserialize(signedChallenge.challenge);
49
- if (requiredType && challenge.type !== requiredType) {
50
- return;
51
- }
52
- if (challenge.expiresAt.isExpired()) {
53
- return;
54
- }
55
- const [relationship, response] = await Promise.all([
56
- this.verifyChallengeLocally(challenge, signedChallenge),
57
- this.authClient.getChallenge(challenge.id.toString())
58
- ]);
59
- if (!relationship ||
60
- (challenge.createdBy && response.value.createdBy !== challenge.createdBy.toString()) ||
47
+ if (requiredType && challenge.type !== requiredType)
48
+ return { isValid: false };
49
+ if (challenge.expiresAt.isExpired())
50
+ return { isValid: false };
51
+ const backboneChallengeResponse = await this.authClient.getChallenge(challenge.id.toString());
52
+ if (backboneChallengeResponse.isError)
53
+ return { isValid: false };
54
+ if ((challenge.createdBy && backboneChallengeResponse.value.createdBy !== challenge.createdBy.toString()) ||
61
55
  // TODO: JSSNMSHDD-2472 (Reenable check once the backbone returns with same timestamp)
62
56
  // response.expiresAt !== challenge.expiresAt.toString() ||
63
- response.value.id !== challenge.id.toString()) {
64
- return;
57
+ backboneChallengeResponse.value.id !== challenge.id.toString()) {
58
+ return { isValid: false };
65
59
  }
66
- return relationship;
60
+ return await this.validateChallengeLocally(challenge, signedChallenge);
67
61
  }
68
62
  async createAccountCreationChallenge(identity) {
69
63
  const backboneResponse = (await this.client.createChallenge()).value;
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeController.js","sourceRoot":"","sources":["../../../src/modules/challenges/ChallengeController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChallengeController.js","sourceRoot":"","sources":["../../../src/modules/challenges/ChallengeController.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ exports.buildInformation = void 0;
15
15
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
16
16
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
17
17
  exports.buildInformation = {
18
- version: "1.1.9",
19
- build: "21",
20
- date: "2022-02-04T12:41:52+00:00",
21
- commit: "a3d954a1746fd2cf627ecc834de1bafe59b7db8d",
22
- dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.1","@js-soft/ts-utils":"1.1.1","axios":"^0.25.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.3.0","qs":"^6.10.3","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
18
+ version: "1.1.10",
19
+ build: "22",
20
+ date: "2022-02-21T10:57:30+00:00",
21
+ commit: "c5a9ae56d5ed7ce0dd69a16080babe841ceed26d",
22
+ dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.1","@js-soft/ts-utils":"1.1.1","axios":"^0.26.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.3.0","qs":"^6.10.3","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
23
23
  libraries: {
24
24
  crypto: crypto_1.buildInformation,
25
25
  serval: ts_serval_1.buildInformation
@@ -4103,51 +4103,45 @@ class ChallengeController extends TransportController_1.TransportController {
4103
4103
  this.authClient = new ChallengeAuthClient_1.ChallengeAuthClient(this.config, this.parent.authenticator);
4104
4104
  return this;
4105
4105
  }
4106
- async verifyChallengeLocally(challenge, signedChallenge) {
4107
- if (!challenge.createdBy) {
4108
- return;
4109
- }
4106
+ async validateChallengeLocally(challenge, signedChallenge) {
4107
+ if (!challenge.createdBy)
4108
+ return { isValid: false };
4110
4109
  const relationship = await this.parent.relationships.getActiveRelationshipToIdentity(challenge.createdBy);
4111
4110
  if (!relationship) {
4112
4111
  throw core_1.TransportErrors.general.recordNotFound(Relationship_1.Relationship, challenge.createdBy.toString());
4113
4112
  }
4114
4113
  const challengeBuffer = crypto_1.CoreBuffer.fromUtf8(signedChallenge.challenge);
4115
- let verified = false;
4114
+ let isValid = false;
4116
4115
  switch (challenge.type) {
4117
4116
  case Challenge_1.ChallengeType.Identity:
4118
- verified = await this.parent.relationships.verifyIdentity(relationship, challengeBuffer, signedChallenge.signature);
4117
+ isValid = await this.parent.relationships.verifyIdentity(relationship, challengeBuffer, signedChallenge.signature);
4119
4118
  break;
4120
4119
  case Challenge_1.ChallengeType.Device:
4121
4120
  throw core_1.TransportErrors.general.notImplemented().logWith(this._log);
4122
4121
  case Challenge_1.ChallengeType.Relationship:
4123
- verified = await this.parent.relationships.verify(relationship, challengeBuffer, signedChallenge.signature);
4122
+ isValid = await this.parent.relationships.verify(relationship, challengeBuffer, signedChallenge.signature);
4124
4123
  break;
4125
4124
  }
4126
- if (!verified) {
4127
- return;
4128
- }
4129
- return relationship;
4125
+ if (!isValid)
4126
+ return { isValid: false };
4127
+ return { isValid: true, correspondingRelationship: relationship };
4130
4128
  }
4131
- async checkChallenge(signedChallenge, requiredType) {
4129
+ async validateChallenge(signedChallenge, requiredType) {
4132
4130
  const challenge = await Challenge_1.Challenge.deserialize(signedChallenge.challenge);
4133
- if (requiredType && challenge.type !== requiredType) {
4134
- return;
4135
- }
4136
- if (challenge.expiresAt.isExpired()) {
4137
- return;
4138
- }
4139
- const [relationship, response] = await Promise.all([
4140
- this.verifyChallengeLocally(challenge, signedChallenge),
4141
- this.authClient.getChallenge(challenge.id.toString())
4142
- ]);
4143
- if (!relationship ||
4144
- (challenge.createdBy && response.value.createdBy !== challenge.createdBy.toString()) ||
4131
+ if (requiredType && challenge.type !== requiredType)
4132
+ return { isValid: false };
4133
+ if (challenge.expiresAt.isExpired())
4134
+ return { isValid: false };
4135
+ const backboneChallengeResponse = await this.authClient.getChallenge(challenge.id.toString());
4136
+ if (backboneChallengeResponse.isError)
4137
+ return { isValid: false };
4138
+ if ((challenge.createdBy && backboneChallengeResponse.value.createdBy !== challenge.createdBy.toString()) ||
4145
4139
  // TODO: JSSNMSHDD-2472 (Reenable check once the backbone returns with same timestamp)
4146
4140
  // response.expiresAt !== challenge.expiresAt.toString() ||
4147
- response.value.id !== challenge.id.toString()) {
4148
- return;
4141
+ backboneChallengeResponse.value.id !== challenge.id.toString()) {
4142
+ return { isValid: false };
4149
4143
  }
4150
- return relationship;
4144
+ return await this.validateChallengeLocally(challenge, signedChallenge);
4151
4145
  }
4152
4146
  async createAccountCreationChallenge(identity) {
4153
4147
  const backboneResponse = (await this.client.createChallenge()).value;
@@ -13111,10 +13105,6 @@ Axios.prototype.request = function request(configOrUrl, config) {
13111
13105
  config = configOrUrl || {};
13112
13106
  }
13113
13107
 
13114
- if (!config.url) {
13115
- throw new Error('Provided config url is not valid');
13116
- }
13117
-
13118
13108
  config = mergeConfig(this.defaults, config);
13119
13109
 
13120
13110
  // Set config.method
@@ -13197,9 +13187,6 @@ Axios.prototype.request = function request(configOrUrl, config) {
13197
13187
  };
13198
13188
 
13199
13189
  Axios.prototype.getUri = function getUri(config) {
13200
- if (!config.url) {
13201
- throw new Error('Provided config url is not valid');
13202
- }
13203
13190
  config = mergeConfig(this.defaults, config);
13204
13191
  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
13205
13192
  };
@@ -13840,7 +13827,7 @@ module.exports = defaults;
13840
13827
  /***/ ((module) => {
13841
13828
 
13842
13829
  module.exports = {
13843
- "version": "0.25.0"
13830
+ "version": "0.26.0"
13844
13831
  };
13845
13832
 
13846
13833
  /***/ }),