@nmshd/core-types 7.0.0-alpha.57 → 7.0.0-alpha.59

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,13 +4,16 @@ export interface ISharedPasswordProtection extends ISerializable {
4
4
  passwordType: "pw" | `pin${number}`;
5
5
  salt: ICoreBuffer;
6
6
  passwordLocationIndicator?: number;
7
+ password?: string;
7
8
  }
8
9
  export declare class SharedPasswordProtection extends Serializable implements ISharedPasswordProtection {
9
10
  passwordType: "pw" | `pin${number}`;
10
11
  salt: CoreBuffer;
11
12
  passwordLocationIndicator?: number;
13
+ password?: string;
12
14
  static from(value: ISharedPasswordProtection): SharedPasswordProtection;
13
15
  static fromTruncated(value?: string): SharedPasswordProtection | undefined;
16
+ private static parseSalt;
14
17
  truncate(): string;
15
18
  }
16
19
  //# sourceMappingURL=SharedPasswordProtection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SharedPasswordProtection.d.ts","sourceRoot":"","sources":["../src/SharedPasswordProtection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC5D,YAAY,EAAE,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,yBAAyB;IAGpF,YAAY,EAAE,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;IAIpC,IAAI,EAAE,UAAU,CAAC;IAIjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;WAE5B,IAAI,CAAC,KAAK,EAAE,yBAAyB,GAAG,wBAAwB;WAIhE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAmB1E,QAAQ,IAAI,MAAM;CAI5B"}
1
+ {"version":3,"file":"SharedPasswordProtection.d.ts","sourceRoot":"","sources":["../src/SharedPasswordProtection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC5D,YAAY,EAAE,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,yBAAyB;IAGpF,YAAY,EAAE,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;IAIpC,IAAI,EAAE,UAAU,CAAC;IAIjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAInC,QAAQ,CAAC,EAAE,MAAM,CAAC;WAEX,IAAI,CAAC,KAAK,EAAE,yBAAyB,GAAG,wBAAwB;WAIhE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAkBjF,OAAO,CAAC,MAAM,CAAC,SAAS;IASjB,QAAQ,IAAI,MAAM;CAG5B"}
@@ -21,22 +21,26 @@ class SharedPasswordProtection extends ts_serval_1.Serializable {
21
21
  if (value === undefined || value === "")
22
22
  return undefined;
23
23
  const splittedPasswordParts = value.split("&");
24
- if (splittedPasswordParts.length !== 2 && splittedPasswordParts.length !== 3) {
25
- throw new CoreError_1.CoreError("error.core-types.invalidTruncatedReference", "The password part of a TruncatedReference must consist of exactly 2 or 3 components.");
24
+ if (![2, 3, 4].includes(splittedPasswordParts.length)) {
25
+ throw new CoreError_1.CoreError("error.core-types.invalidTruncatedReference", "The password part of a TruncatedReference must consist of 2, 3 or 4 components.");
26
26
  }
27
27
  const passwordType = splittedPasswordParts[0];
28
- const passwordLocationIndicator = splittedPasswordParts.length === 3 ? parseInt(splittedPasswordParts[2]) : undefined;
28
+ const passwordLocationIndicator = splittedPasswordParts.length > 2 && splittedPasswordParts[2] !== "" ? parseInt(splittedPasswordParts[2]) : undefined;
29
+ const salt = this.parseSalt(splittedPasswordParts[1]);
30
+ const password = splittedPasswordParts.length > 3 && splittedPasswordParts[3] ? splittedPasswordParts[3] : undefined;
31
+ return SharedPasswordProtection.from({ passwordType, salt, passwordLocationIndicator, password });
32
+ }
33
+ static parseSalt(value) {
29
34
  try {
30
- const salt = crypto_1.CoreBuffer.fromBase64(splittedPasswordParts[1]);
31
- return SharedPasswordProtection.from({ passwordType, salt, passwordLocationIndicator });
35
+ const salt = crypto_1.CoreBuffer.fromBase64(value);
36
+ return salt;
32
37
  }
33
38
  catch (_) {
34
39
  throw new CoreError_1.CoreError("error.core-types.invalidTruncatedReference", "The salt needs to be a Base64 value.");
35
40
  }
36
41
  }
37
42
  truncate() {
38
- const passwordLocationIndicatorPart = this.passwordLocationIndicator !== undefined ? `&${this.passwordLocationIndicator}` : "";
39
- return `${this.passwordType}&${this.salt.toBase64()}${passwordLocationIndicatorPart}`;
43
+ return `${this.passwordType}&${this.salt.toBase64()}&${this.passwordLocationIndicator ?? ""}&${this.password ?? ""}`;
40
44
  }
41
45
  }
42
46
  exports.SharedPasswordProtection = SharedPasswordProtection;
@@ -55,4 +59,9 @@ __decorate([
55
59
  (0, ts_serval_1.serialize)({ any: true }),
56
60
  __metadata("design:type", Number)
57
61
  ], SharedPasswordProtection.prototype, "passwordLocationIndicator", void 0);
62
+ __decorate([
63
+ (0, ts_serval_1.validate)({ nullable: true }),
64
+ (0, ts_serval_1.serialize)(),
65
+ __metadata("design:type", String)
66
+ ], SharedPasswordProtection.prototype, "password", void 0);
58
67
  //# sourceMappingURL=SharedPasswordProtection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SharedPasswordProtection.js","sourceRoot":"","sources":["../src/SharedPasswordProtection.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAsF;AACtF,0CAAwD;AACxD,2CAAwC;AAQxC,MAAa,wBAAyB,SAAQ,wBAAY;IAa/C,MAAM,CAAC,IAAI,CAAC,KAAgC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAAc;QACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QAE1D,MAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,qBAAS,CAAC,4CAA4C,EAAE,sFAAsF,CAAC,CAAC;QAC9J,CAAC;QAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAA0B,CAAC;QACvE,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtH,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,mBAAU,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,wBAAwB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,qBAAS,CAAC,4CAA4C,EAAE,sCAAsC,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC;IAEM,QAAQ;QACX,MAAM,6BAA6B,GAAG,IAAI,CAAC,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/H,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,6BAA6B,EAAE,CAAC;IAC1F,CAAC;CACJ;AAxCD,4DAwCC;AArCU;IAFN,IAAA,oBAAQ,EAAC,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;IACpE,IAAA,qBAAS,GAAE;;8DAC+B;AAIpC;IAFN,IAAA,oBAAQ,EAAC,EAAE,eAAe,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC;IACrH,IAAA,qBAAS,GAAE;8BACC,mBAAU;sDAAC;AAIjB;IAFN,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;IAC5I,IAAA,qBAAS,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;2EACiB"}
1
+ {"version":3,"file":"SharedPasswordProtection.js","sourceRoot":"","sources":["../src/SharedPasswordProtection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -53,14 +53,16 @@
53
53
  "@js-soft/ts-serval": "2.0.13",
54
54
  "@nmshd/crypto": "^2.1.2",
55
55
  "json-stringify-safe": "^5.0.1",
56
- "luxon": "^3.7.1"
56
+ "luxon": "^3.7.1",
57
+ "uuid": "^11.1.0"
57
58
  },
58
59
  "devDependencies": {
59
- "@types/luxon": "^3.7.1"
60
+ "@types/luxon": "^3.7.1",
61
+ "@types/uuid": "^10.0.0"
60
62
  },
61
63
  "publishConfig": {
62
64
  "access": "public",
63
65
  "provenance": true
64
66
  },
65
- "version": "7.0.0-alpha.57"
67
+ "version": "7.0.0-alpha.59"
66
68
  }