@nmshd/crypto 1.0.9 → 2.0.0

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.
Files changed (106) hide show
  1. package/dist/CoreBuffer.d.ts +0 -1
  2. package/dist/CoreBuffer.js +1 -4
  3. package/dist/CoreBuffer.js.map +1 -1
  4. package/dist/CryptoDerivation.js +2 -2
  5. package/dist/CryptoDerivation.js.map +1 -1
  6. package/dist/CryptoPrivateKey.d.ts +7 -10
  7. package/dist/CryptoPrivateKey.js +18 -33
  8. package/dist/CryptoPrivateKey.js.map +1 -1
  9. package/dist/CryptoPublicKey.d.ts +6 -9
  10. package/dist/CryptoPublicKey.js +16 -31
  11. package/dist/CryptoPublicKey.js.map +1 -1
  12. package/dist/CryptoSerializable.js.map +1 -1
  13. package/dist/CryptoValidation.d.ts +4 -6
  14. package/dist/CryptoValidation.js +16 -29
  15. package/dist/CryptoValidation.js.map +1 -1
  16. package/dist/buildInformation.js +4 -4
  17. package/dist/encryption/CryptoCipher.d.ts +5 -6
  18. package/dist/encryption/CryptoCipher.js +59 -56
  19. package/dist/encryption/CryptoCipher.js.map +1 -1
  20. package/dist/encryption/CryptoEncryption.js +10 -12
  21. package/dist/encryption/CryptoEncryption.js.map +1 -1
  22. package/dist/encryption/CryptoSecretKey.d.ts +3 -4
  23. package/dist/encryption/CryptoSecretKey.js +34 -30
  24. package/dist/encryption/CryptoSecretKey.js.map +1 -1
  25. package/dist/exchange/CryptoExchange.d.ts +0 -2
  26. package/dist/exchange/CryptoExchange.js +3 -20
  27. package/dist/exchange/CryptoExchange.js.map +1 -1
  28. package/dist/exchange/CryptoExchangeKeypair.d.ts +3 -4
  29. package/dist/exchange/CryptoExchangeKeypair.js +29 -22
  30. package/dist/exchange/CryptoExchangeKeypair.js.map +1 -1
  31. package/dist/exchange/CryptoExchangePrivateKey.d.ts +3 -5
  32. package/dist/exchange/CryptoExchangePrivateKey.js +50 -31
  33. package/dist/exchange/CryptoExchangePrivateKey.js.map +1 -1
  34. package/dist/exchange/CryptoExchangePublicKey.d.ts +3 -4
  35. package/dist/exchange/CryptoExchangePublicKey.js +28 -29
  36. package/dist/exchange/CryptoExchangePublicKey.js.map +1 -1
  37. package/dist/exchange/CryptoExchangeSecrets.d.ts +4 -5
  38. package/dist/exchange/CryptoExchangeSecrets.js +32 -34
  39. package/dist/exchange/CryptoExchangeSecrets.js.map +1 -1
  40. package/dist/exchange/CryptoExchangeValidation.d.ts +7 -10
  41. package/dist/exchange/CryptoExchangeValidation.js +9 -36
  42. package/dist/exchange/CryptoExchangeValidation.js.map +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js +1 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/relationship/CryptoRelationshipPublicRequest.d.ts +1 -2
  47. package/dist/relationship/CryptoRelationshipPublicRequest.js +19 -34
  48. package/dist/relationship/CryptoRelationshipPublicRequest.js.map +1 -1
  49. package/dist/relationship/CryptoRelationshipPublicResponse.d.ts +1 -2
  50. package/dist/relationship/CryptoRelationshipPublicResponse.js +20 -30
  51. package/dist/relationship/CryptoRelationshipPublicResponse.js.map +1 -1
  52. package/dist/relationship/CryptoRelationshipRequestSecrets.d.ts +0 -1
  53. package/dist/relationship/CryptoRelationshipRequestSecrets.js +1 -4
  54. package/dist/relationship/CryptoRelationshipRequestSecrets.js.map +1 -1
  55. package/dist/relationship/CryptoRelationshipSecrets.d.ts +0 -1
  56. package/dist/relationship/CryptoRelationshipSecrets.js +1 -4
  57. package/dist/relationship/CryptoRelationshipSecrets.js.map +1 -1
  58. package/dist/signature/CryptoSignature.d.ts +5 -6
  59. package/dist/signature/CryptoSignature.js +36 -32
  60. package/dist/signature/CryptoSignature.js.map +1 -1
  61. package/dist/signature/CryptoSignatureAlgorithm.d.ts +5 -0
  62. package/dist/signature/CryptoSignatureAlgorithm.js +3 -0
  63. package/dist/signature/CryptoSignatureAlgorithm.js.map +1 -0
  64. package/dist/signature/CryptoSignatureKeypair.d.ts +3 -4
  65. package/dist/signature/CryptoSignatureKeypair.js +32 -30
  66. package/dist/signature/CryptoSignatureKeypair.js.map +1 -1
  67. package/dist/signature/CryptoSignaturePrivateKey.d.ts +5 -8
  68. package/dist/signature/CryptoSignaturePrivateKey.js +24 -35
  69. package/dist/signature/CryptoSignaturePrivateKey.js.map +1 -1
  70. package/dist/signature/CryptoSignaturePublicKey.d.ts +4 -7
  71. package/dist/signature/CryptoSignaturePublicKey.js +19 -41
  72. package/dist/signature/CryptoSignaturePublicKey.js.map +1 -1
  73. package/dist/signature/CryptoSignatureValidation.d.ts +10 -12
  74. package/dist/signature/CryptoSignatureValidation.js +13 -35
  75. package/dist/signature/CryptoSignatureValidation.js.map +1 -1
  76. package/dist/signature/CryptoSignatures.d.ts +1 -5
  77. package/dist/signature/CryptoSignatures.js +4 -4
  78. package/dist/signature/CryptoSignatures.js.map +1 -1
  79. package/dist/state/CryptoPrivateState.d.ts +7 -15
  80. package/dist/state/CryptoPrivateState.js +72 -76
  81. package/dist/state/CryptoPrivateState.js.map +1 -1
  82. package/dist/state/CryptoPrivateStateReceive.d.ts +2 -4
  83. package/dist/state/CryptoPrivateStateReceive.js +27 -39
  84. package/dist/state/CryptoPrivateStateReceive.js.map +1 -1
  85. package/dist/state/CryptoPrivateStateTransmit.d.ts +1 -2
  86. package/dist/state/CryptoPrivateStateTransmit.js +14 -40
  87. package/dist/state/CryptoPrivateStateTransmit.js.map +1 -1
  88. package/dist/state/CryptoPublicState.d.ts +5 -10
  89. package/dist/state/CryptoPublicState.js +42 -51
  90. package/dist/state/CryptoPublicState.js.map +1 -1
  91. package/dist/stream/CryptoStream.js +5 -2
  92. package/dist/stream/CryptoStream.js.map +1 -1
  93. package/dist/stream/CryptoStreamAddress.d.ts +3 -6
  94. package/dist/stream/CryptoStreamAddress.js +13 -29
  95. package/dist/stream/CryptoStreamAddress.js.map +1 -1
  96. package/dist/stream/CryptoStreamHeader.d.ts +5 -8
  97. package/dist/stream/CryptoStreamHeader.js +15 -18
  98. package/dist/stream/CryptoStreamHeader.js.map +1 -1
  99. package/dist/stream/CryptoStreamState.d.ts +3 -7
  100. package/dist/stream/CryptoStreamState.js +14 -32
  101. package/dist/stream/CryptoStreamState.js.map +1 -1
  102. package/lib-web/nmshd.crypto.js +701 -914
  103. package/lib-web/nmshd.crypto.js.map +1 -1
  104. package/lib-web/nmshd.crypto.min.js +1 -1
  105. package/lib-web/nmshd.crypto.min.js.map +1 -1
  106. package/package.json +3 -3
@@ -1,50 +1,23 @@
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.CryptoPrivateState = void 0;
4
13
  const ts_serval_1 = require("@js-soft/ts-serval");
5
14
  const CoreBuffer_1 = require("../CoreBuffer");
6
- const CryptoError_1 = require("../CryptoError");
7
- const CryptoErrorCode_1 = require("../CryptoErrorCode");
8
15
  const CryptoValidation_1 = require("../CryptoValidation");
9
16
  const CryptoPublicState_1 = require("./CryptoPublicState");
17
+ const CryptoStateType_1 = require("./CryptoStateType");
10
18
  class CryptoPrivateState extends ts_serval_1.Serializable {
11
- constructor(nonce, counter, secretKey, algorithm, stateType, id) {
12
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(algorithm);
13
- CryptoValidation_1.CryptoValidation.checkCounter(counter);
14
- CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, algorithm);
15
- CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(secretKey, algorithm);
16
- CryptoValidation_1.CryptoValidation.checkStateType(stateType);
17
- if (id) {
18
- CryptoValidation_1.CryptoValidation.checkId(id);
19
- }
20
- super();
21
- this._nonce = nonce;
22
- this._counter = counter ? counter : 0;
23
- this._secretKey = secretKey;
24
- this._algorithm = algorithm;
25
- this._stateType = stateType;
26
- this._id = id;
27
- }
28
- get id() {
29
- return this._id;
30
- }
31
- get nonce() {
32
- return this._nonce;
33
- }
34
- get counter() {
35
- return this._counter;
36
- }
37
- get secretKey() {
38
- return this._secretKey;
39
- }
40
- get algorithm() {
41
- return this._algorithm;
42
- }
43
- get stateType() {
44
- return this._stateType;
45
- }
46
19
  setCounter(value) {
47
- this._counter = value;
20
+ this.counter = value;
48
21
  }
49
22
  clear() {
50
23
  this.secretKey.clear();
@@ -53,59 +26,82 @@ class CryptoPrivateState extends ts_serval_1.Serializable {
53
26
  toString() {
54
27
  return this.serialize();
55
28
  }
56
- serialize() {
57
- const obj = this.toJSON();
58
- return JSON.stringify(obj);
59
- }
60
29
  toPublicState() {
61
- return new CryptoPublicState_1.CryptoPublicState(this.nonce.clone(), this.algorithm, this.stateType, this.id);
30
+ return CryptoPublicState_1.CryptoPublicState.from({
31
+ nonce: this.nonce.clone(),
32
+ algorithm: this.algorithm,
33
+ stateType: this.stateType,
34
+ id: this.id
35
+ });
62
36
  }
63
37
  toJSON(verbose = true) {
64
- const obj = {
38
+ return {
65
39
  nnc: this.nonce.toBase64URL(),
66
40
  cnt: this.counter,
67
41
  key: this.secretKey.toBase64URL(),
68
42
  alg: this.algorithm,
69
- typ: this.stateType
43
+ typ: this.stateType,
44
+ id: this.id,
45
+ "@type": verbose ? "CryptoPrivateState" : undefined
70
46
  };
71
- if (this.id) {
72
- obj.id = this.id;
47
+ }
48
+ static preFrom(value) {
49
+ if (value.nnc) {
50
+ value = {
51
+ nonce: value.nnc,
52
+ counter: value.cnt,
53
+ secretKey: value.key,
54
+ algorithm: value.alg,
55
+ stateType: value.typ,
56
+ id: value.id
57
+ };
73
58
  }
74
- if (verbose) {
75
- obj["@type"] = "CryptoPrivateState";
59
+ CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.algorithm);
60
+ CryptoValidation_1.CryptoValidation.checkCounter(value.counter);
61
+ CryptoValidation_1.CryptoValidation.checkNonce(value.nonce, value.algorithm);
62
+ CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(value.secretKey, value.algorithm);
63
+ CryptoValidation_1.CryptoValidation.checkStateType(value.stateType);
64
+ if (value.id) {
65
+ CryptoValidation_1.CryptoValidation.checkId(value.id);
76
66
  }
77
- return obj;
67
+ return value;
78
68
  }
79
69
  static from(obj) {
80
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
81
- if (!obj.secretKey) {
82
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongSecretKey, "No secretKey property set.");
83
- }
84
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
85
- if (!obj.nonce) {
86
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongNonce, "No nonce nor counter property set.");
87
- }
88
- if (typeof obj.counter === "undefined") {
89
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongCounter, "Wrong counter.");
90
- }
91
- return new CryptoPrivateState(CoreBuffer_1.CoreBuffer.from(obj.nonce), obj.counter, CoreBuffer_1.CoreBuffer.from(obj.secretKey), obj.algorithm, obj.stateType, obj.id);
70
+ return this.fromAny(obj);
92
71
  }
93
72
  static fromJSON(value) {
94
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.alg);
95
- CryptoValidation_1.CryptoValidation.checkCounter(value.cnt);
96
- CryptoValidation_1.CryptoValidation.checkSerializedBuffer(value.nnc, 0, 24, "nonce");
97
- CryptoValidation_1.CryptoValidation.checkSerializedSecretKeyForAlgorithm(value.key, value.alg);
98
- if (value.typ) {
99
- CryptoValidation_1.CryptoValidation.checkStateType(value.typ);
100
- }
101
- const nonceBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.nnc);
102
- const secretKeyBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.key);
103
- return new CryptoPrivateState(nonceBuffer, value.cnt, secretKeyBuffer, value.alg, value.typ, value.id);
104
- }
105
- static deserialize(value) {
106
- const obj = JSON.parse(value);
107
- return this.from(obj);
73
+ return this.fromAny(value);
108
74
  }
109
75
  }
76
+ __decorate([
77
+ (0, ts_serval_1.validate)({ nullable: true }),
78
+ (0, ts_serval_1.serialize)(),
79
+ __metadata("design:type", String)
80
+ ], CryptoPrivateState.prototype, "id", void 0);
81
+ __decorate([
82
+ (0, ts_serval_1.validate)(),
83
+ (0, ts_serval_1.serialize)(),
84
+ __metadata("design:type", CoreBuffer_1.CoreBuffer)
85
+ ], CryptoPrivateState.prototype, "nonce", void 0);
86
+ __decorate([
87
+ (0, ts_serval_1.validate)(),
88
+ (0, ts_serval_1.serialize)(),
89
+ __metadata("design:type", Number)
90
+ ], CryptoPrivateState.prototype, "counter", void 0);
91
+ __decorate([
92
+ (0, ts_serval_1.validate)(),
93
+ (0, ts_serval_1.serialize)(),
94
+ __metadata("design:type", CoreBuffer_1.CoreBuffer)
95
+ ], CryptoPrivateState.prototype, "secretKey", void 0);
96
+ __decorate([
97
+ (0, ts_serval_1.validate)(),
98
+ (0, ts_serval_1.serialize)(),
99
+ __metadata("design:type", Number)
100
+ ], CryptoPrivateState.prototype, "algorithm", void 0);
101
+ __decorate([
102
+ (0, ts_serval_1.validate)(),
103
+ (0, ts_serval_1.serialize)(),
104
+ __metadata("design:type", Number)
105
+ ], CryptoPrivateState.prototype, "stateType", void 0);
110
106
  exports.CryptoPrivateState = CryptoPrivateState;
111
107
  //# sourceMappingURL=CryptoPrivateState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPrivateState.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPrivateState.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateState.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  import { CoreBuffer } from "../CoreBuffer";
2
2
  import { CryptoCipher } from "../encryption/CryptoCipher";
3
- import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
3
  import { CryptoPrivateState, ICryptoPrivateState, ICryptoPrivateStateSerialized } from "./CryptoPrivateState";
5
4
  import { CryptoPublicState } from "./CryptoPublicState";
6
5
  export declare class CryptoPrivateStateReceive extends CryptoPrivateState {
7
- constructor(nonce: CoreBuffer, counter: number, secretKey: CoreBuffer, algorithm: CryptoEncryptionAlgorithm, id?: string);
8
6
  toJSON(): ICryptoPrivateStateSerialized;
9
7
  decrypt(cipher: CryptoCipher, omitCounterCheck?: boolean): Promise<CoreBuffer>;
10
8
  static fromNonce(nonce: CoreBuffer, secretKey: CoreBuffer, counter?: number): CryptoPrivateStateReceive;
11
- static fromPublicState(publicState: CryptoPublicState, secretKey: CoreBuffer, counter?: number): Promise<CryptoPrivateStateReceive>;
9
+ static fromPublicState(publicState: CryptoPublicState, secretKey: CoreBuffer, counter?: number): CryptoPrivateStateReceive;
10
+ protected static preFrom(value: any): any;
12
11
  static from(obj: CryptoPrivateState | ICryptoPrivateState): CryptoPrivateStateReceive;
13
12
  static fromJSON(value: ICryptoPrivateStateSerialized): CryptoPrivateStateReceive;
14
- static deserialize(value: string): CryptoPrivateStateReceive;
15
13
  }
@@ -5,14 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
- };
11
8
  var CryptoPrivateStateReceive_1;
12
9
  Object.defineProperty(exports, "__esModule", { value: true });
13
10
  exports.CryptoPrivateStateReceive = void 0;
14
11
  const ts_serval_1 = require("@js-soft/ts-serval");
15
- const CoreBuffer_1 = require("../CoreBuffer");
16
12
  const CryptoError_1 = require("../CryptoError");
17
13
  const CryptoErrorCode_1 = require("../CryptoErrorCode");
18
14
  const CryptoValidation_1 = require("../CryptoValidation");
@@ -20,9 +16,6 @@ const CryptoEncryption_1 = require("../encryption/CryptoEncryption");
20
16
  const CryptoPrivateState_1 = require("./CryptoPrivateState");
21
17
  const CryptoStateType_1 = require("./CryptoStateType");
22
18
  let CryptoPrivateStateReceive = CryptoPrivateStateReceive_1 = class CryptoPrivateStateReceive extends CryptoPrivateState_1.CryptoPrivateState {
23
- constructor(nonce, counter, secretKey, algorithm, id) {
24
- super(nonce, counter, secretKey, algorithm, CryptoStateType_1.CryptoStateType.Receive, id);
25
- }
26
19
  toJSON() {
27
20
  const obj = super.toJSON();
28
21
  obj["@type"] = "CryptoPrivateStateReceive";
@@ -47,47 +40,42 @@ let CryptoPrivateStateReceive = CryptoPrivateStateReceive_1 = class CryptoPrivat
47
40
  return plaintext;
48
41
  }
49
42
  static fromNonce(nonce, secretKey, counter = 0) {
50
- return new CryptoPrivateStateReceive_1(nonce.clone(), counter, secretKey, 3 /* XCHACHA20_POLY1305 */);
43
+ return CryptoPrivateStateReceive_1.from({
44
+ nonce: nonce.clone(),
45
+ counter,
46
+ secretKey,
47
+ algorithm: 3 /* XCHACHA20_POLY1305 */,
48
+ stateType: CryptoStateType_1.CryptoStateType.Receive
49
+ });
51
50
  }
52
51
  static fromPublicState(publicState, secretKey, counter = 0) {
53
- return Promise.resolve(new CryptoPrivateStateReceive_1(publicState.nonce.clone(), counter, secretKey, publicState.algorithm, publicState.id));
52
+ return CryptoPrivateStateReceive_1.from({
53
+ nonce: publicState.nonce.clone(),
54
+ counter,
55
+ secretKey,
56
+ algorithm: publicState.algorithm,
57
+ id: publicState.id,
58
+ stateType: CryptoStateType_1.CryptoStateType.Receive
59
+ });
54
60
  }
55
- static from(obj) {
56
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
57
- if (!obj.secretKey) {
58
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongSecretKey, "No secretKey set.");
59
- }
60
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
61
- if (!obj.nonce) {
62
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongNonce, "No nonce set.");
63
- }
64
- if (typeof obj.counter === "undefined") {
65
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongCounter, "No counter.");
61
+ static preFrom(value) {
62
+ value = super.preFrom(value);
63
+ CryptoValidation_1.CryptoValidation.checkBufferAsStringOrBuffer(value.nonce, 0, 24, "nonce");
64
+ CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(value.secretKey, value.algorithm);
65
+ if (value.stateType) {
66
+ CryptoValidation_1.CryptoValidation.checkStateType(value.stateType);
66
67
  }
67
- if (obj.stateType !== CryptoStateType_1.CryptoStateType.Receive) {
68
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongType, "The given object has a wrong state type.");
69
- }
70
- return new CryptoPrivateStateReceive_1(CoreBuffer_1.CoreBuffer.from(obj.nonce), obj.counter, CoreBuffer_1.CoreBuffer.from(obj.secretKey), obj.algorithm, obj.id);
68
+ return value;
71
69
  }
72
- static fromJSON(value) {
73
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.alg);
74
- CryptoValidation_1.CryptoValidation.checkCounter(value.cnt);
75
- CryptoValidation_1.CryptoValidation.checkSerializedBuffer(value.nnc, 0, 24, "nnc");
76
- CryptoValidation_1.CryptoValidation.checkSerializedSecretKeyForAlgorithm(value.key, value.alg);
77
- if (value.typ) {
78
- CryptoValidation_1.CryptoValidation.checkStateType(value.typ);
79
- }
80
- const nonceBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.nnc);
81
- const secretKeyBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.key);
82
- return new CryptoPrivateStateReceive_1(nonceBuffer, value.cnt, secretKeyBuffer, value.alg, value.id);
70
+ static from(obj) {
71
+ return this.fromAny(obj);
83
72
  }
84
- static deserialize(value) {
85
- return this.fromJSON(JSON.parse(value));
73
+ static fromJSON(value) {
74
+ return this.fromAny(value);
86
75
  }
87
76
  };
88
77
  CryptoPrivateStateReceive = CryptoPrivateStateReceive_1 = __decorate([
89
- (0, ts_serval_1.type)("CryptoPrivateStateReceive"),
90
- __metadata("design:paramtypes", [CoreBuffer_1.CoreBuffer, Number, CoreBuffer_1.CoreBuffer, Number, String])
78
+ (0, ts_serval_1.type)("CryptoPrivateStateReceive")
91
79
  ], CryptoPrivateStateReceive);
92
80
  exports.CryptoPrivateStateReceive = CryptoPrivateStateReceive;
93
81
  //# sourceMappingURL=CryptoPrivateStateReceive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPrivateStateReceive.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateStateReceive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPrivateStateReceive.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateStateReceive.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,11 @@ import { CryptoCipher } from "../encryption/CryptoCipher";
3
3
  import { CryptoEncryptionAlgorithm } from "../encryption/CryptoEncryption";
4
4
  import { CryptoPrivateState, ICryptoPrivateState, ICryptoPrivateStateSerialized } from "./CryptoPrivateState";
5
5
  export declare class CryptoPrivateStateTransmit extends CryptoPrivateState {
6
- constructor(nonce: CoreBuffer, counter: number, secretKey: CoreBuffer, algorithm?: CryptoEncryptionAlgorithm, id?: string);
7
6
  toJSON(): ICryptoPrivateStateSerialized;
8
7
  encrypt(plaintext: CoreBuffer): Promise<CryptoCipher>;
9
8
  decrypt(cipher: CryptoCipher): Promise<CoreBuffer>;
10
9
  static generate(secretKey?: CoreBuffer, id?: string, algorithm?: CryptoEncryptionAlgorithm): CryptoPrivateStateTransmit;
11
10
  static from(obj: CryptoPrivateState | ICryptoPrivateState): CryptoPrivateStateTransmit;
11
+ protected static preFrom(value: any): any;
12
12
  static fromJSON(value: ICryptoPrivateStateSerialized): CryptoPrivateStateTransmit;
13
- static deserialize(value: string): CryptoPrivateStateTransmit;
14
13
  }
@@ -5,24 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
- };
11
- var CryptoPrivateStateTransmit_1;
12
8
  Object.defineProperty(exports, "__esModule", { value: true });
13
9
  exports.CryptoPrivateStateTransmit = void 0;
14
10
  const ts_serval_1 = require("@js-soft/ts-serval");
15
- const CoreBuffer_1 = require("../CoreBuffer");
16
11
  const CryptoError_1 = require("../CryptoError");
17
12
  const CryptoErrorCode_1 = require("../CryptoErrorCode");
18
13
  const CryptoValidation_1 = require("../CryptoValidation");
19
14
  const CryptoEncryption_1 = require("../encryption/CryptoEncryption");
20
15
  const CryptoPrivateState_1 = require("./CryptoPrivateState");
21
16
  const CryptoStateType_1 = require("./CryptoStateType");
22
- let CryptoPrivateStateTransmit = CryptoPrivateStateTransmit_1 = class CryptoPrivateStateTransmit extends CryptoPrivateState_1.CryptoPrivateState {
23
- constructor(nonce, counter, secretKey, algorithm = 3 /* XCHACHA20_POLY1305 */, id) {
24
- super(nonce, counter, secretKey, algorithm, CryptoStateType_1.CryptoStateType.Transmit, id);
25
- }
17
+ let CryptoPrivateStateTransmit = class CryptoPrivateStateTransmit extends CryptoPrivateState_1.CryptoPrivateState {
26
18
  toJSON() {
27
19
  const obj = super.toJSON();
28
20
  obj["@type"] = "CryptoPrivateStateTransmit";
@@ -48,44 +40,26 @@ let CryptoPrivateStateTransmit = CryptoPrivateStateTransmit_1 = class CryptoPriv
48
40
  throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongCounter);
49
41
  const nonce = CryptoEncryption_1.CryptoEncryption.createNonce(algorithm);
50
42
  const counter = 0;
51
- return new CryptoPrivateStateTransmit_1(nonce, counter, secretKey, algorithm, id);
43
+ return this.from({ nonce, counter, secretKey, algorithm, id, stateType: CryptoStateType_1.CryptoStateType.Transmit });
52
44
  }
53
45
  static from(obj) {
54
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
55
- if (!obj.secretKey) {
56
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongSecretKey, "No secretKey property set.");
57
- }
58
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
59
- if (!obj.nonce) {
60
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongNonce, "No nonce nor counter property set.");
61
- }
62
- if (typeof obj.counter === "undefined") {
63
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongCounter, "Wrong counter.");
64
- }
65
- if (obj.stateType !== CryptoStateType_1.CryptoStateType.Transmit) {
66
- throw new CryptoError_1.CryptoError(CryptoErrorCode_1.CryptoErrorCode.StateWrongType, "The given object has a wrong state type.");
67
- }
68
- return new CryptoPrivateStateTransmit_1(CoreBuffer_1.CoreBuffer.from(obj.nonce), obj.counter, CoreBuffer_1.CoreBuffer.from(obj.secretKey), obj.algorithm, obj.id);
46
+ return this.fromAny(obj);
69
47
  }
70
- static fromJSON(value) {
71
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.alg);
72
- CryptoValidation_1.CryptoValidation.checkCounter(value.cnt);
73
- CryptoValidation_1.CryptoValidation.checkSerializedBuffer(value.nnc, 0, 24, "nonce");
74
- CryptoValidation_1.CryptoValidation.checkSerializedSecretKeyForAlgorithm(value.key, value.alg);
75
- if (value.typ) {
76
- CryptoValidation_1.CryptoValidation.checkStateType(value.typ);
48
+ static preFrom(value) {
49
+ value = super.preFrom(value);
50
+ CryptoValidation_1.CryptoValidation.checkBufferAsStringOrBuffer(value.nonce, 0, 24, "nonce");
51
+ CryptoValidation_1.CryptoValidation.checkSecretKeyForAlgorithm(value.secretKey, value.algorithm);
52
+ if (value.stateType) {
53
+ CryptoValidation_1.CryptoValidation.checkStateType(value.stateType);
77
54
  }
78
- const nonceBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.nnc);
79
- const secretKeyBuffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.key);
80
- return new CryptoPrivateStateTransmit_1(nonceBuffer, value.cnt, secretKeyBuffer, value.alg, value.id);
55
+ return value;
81
56
  }
82
- static deserialize(value) {
83
- return this.fromJSON(JSON.parse(value));
57
+ static fromJSON(value) {
58
+ return this.fromAny(value);
84
59
  }
85
60
  };
86
- CryptoPrivateStateTransmit = CryptoPrivateStateTransmit_1 = __decorate([
87
- (0, ts_serval_1.type)("CryptoPrivateStateTransmit"),
88
- __metadata("design:paramtypes", [CoreBuffer_1.CoreBuffer, Number, CoreBuffer_1.CoreBuffer, Number, String])
61
+ CryptoPrivateStateTransmit = __decorate([
62
+ (0, ts_serval_1.type)("CryptoPrivateStateTransmit")
89
63
  ], CryptoPrivateStateTransmit);
90
64
  exports.CryptoPrivateStateTransmit = CryptoPrivateStateTransmit;
91
65
  //# sourceMappingURL=CryptoPrivateStateTransmit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPrivateStateTransmit.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateStateTransmit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPrivateStateTransmit.js","sourceRoot":"","sources":["../../src/state/CryptoPrivateStateTransmit.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAA0C;AAE1C,gDAA6C;AAC7C,wDAAqD;AACrD,0DAAuD;AAEvD,qEAA6F;AAC7F,6DAA8G;AAC9G,uDAAoD;AAGpD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,uCAAkB;IAC9C,MAAM;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAAC;QAC5C,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAqB;QACtC,MAAM,MAAM,GAAG,MAAM,mCAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAoB;QACrC,mCAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW;YAAE,MAAM,IAAI,yBAAW,CAAC,iCAAe,CAAC,iBAAiB,CAAC,CAAC;QAEpG,MAAM,SAAS,GAAG,MAAM,mCAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhH,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAClB,SAAsB,EACtB,EAAW,EACX,sCAAmF;QAEnF,mCAAgB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACrD,mCAAgB,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,MAAM,IAAI,yBAAW,CAAC,iCAAe,CAAC,iBAAiB,CAAC,CAAC;QAE/F,MAAM,KAAK,GAAG,mCAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,CAAC;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,iCAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxG,CAAC;IAEM,MAAM,CAAU,IAAI,CAAC,GAA6C;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAES,MAAM,CAAU,OAAO,CAAC,KAAU;QACxC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7B,mCAAgB,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1E,mCAAgB,CAAC,0BAA0B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9E,IAAI,KAAK,CAAC,SAAS,EAAE;YACjB,mCAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACpD;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAU,QAAQ,CAAC,KAAoC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACJ,CAAA;AA3DY,0BAA0B;IADtC,IAAA,gBAAI,EAAC,4BAA4B,CAAC;GACtB,0BAA0B,CA2DtC;AA3DY,gEAA0B"}
@@ -15,19 +15,14 @@ export interface ICryptoPublicState extends ISerializable {
15
15
  stateType: CryptoStateType;
16
16
  }
17
17
  export declare class CryptoPublicState extends Serializable implements ICryptoPublicState, IClearable {
18
- private readonly _id?;
19
- get id(): string | undefined;
20
- private readonly _nonce;
21
- get nonce(): CoreBuffer;
22
- private readonly _algorithm;
23
- get algorithm(): CryptoEncryptionAlgorithm;
24
- private readonly _stateType;
25
- get stateType(): CryptoStateType;
26
- constructor(nonce: CoreBuffer, algorithm: CryptoEncryptionAlgorithm, stateType: CryptoStateType, id?: string);
18
+ id?: string;
19
+ nonce: CoreBuffer;
20
+ algorithm: CryptoEncryptionAlgorithm;
21
+ stateType: CryptoStateType;
27
22
  clear(): void;
28
23
  toJSON(verbose?: boolean): ICryptoPublicStateSerialized;
24
+ protected static preFrom(value: any): any;
29
25
  static from(value: CryptoPublicState | ICryptoPublicState): CryptoPublicState;
30
26
  static fromJSON(value: ICryptoPublicStateSerialized): CryptoPublicState;
31
27
  static fromBase64(value: string): CryptoPublicState;
32
- static deserialize(value: string): CryptoPublicState;
33
28
  }
@@ -8,80 +8,71 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var CryptoPublicState_1;
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
12
  exports.CryptoPublicState = void 0;
14
13
  const ts_serval_1 = require("@js-soft/ts-serval");
15
14
  const CoreBuffer_1 = require("../CoreBuffer");
16
15
  const CryptoValidation_1 = require("../CryptoValidation");
17
16
  const CryptoStateType_1 = require("./CryptoStateType");
18
- let CryptoPublicState = CryptoPublicState_1 = class CryptoPublicState extends ts_serval_1.Serializable {
19
- constructor(nonce, algorithm, stateType, id) {
20
- CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(algorithm);
21
- CryptoValidation_1.CryptoValidation.checkNonceForAlgorithm(nonce, algorithm);
22
- CryptoValidation_1.CryptoValidation.checkStateType(stateType);
23
- super();
24
- this._nonce = nonce;
25
- this._algorithm = algorithm;
26
- this._id = id;
27
- this._stateType = stateType;
28
- }
29
- get id() {
30
- return this._id;
31
- }
32
- get nonce() {
33
- return this._nonce;
34
- }
35
- get algorithm() {
36
- return this._algorithm;
37
- }
38
- get stateType() {
39
- return this._stateType;
40
- }
17
+ let CryptoPublicState = class CryptoPublicState extends ts_serval_1.Serializable {
41
18
  clear() {
42
19
  this.nonce.clear();
43
20
  }
44
21
  toJSON(verbose = true) {
45
- const obj = {
22
+ return {
23
+ "@type": verbose ? "CryptoPublicState" : undefined,
46
24
  nnc: this.nonce.toBase64URL(),
47
25
  alg: this.algorithm,
48
- typ: this.stateType
26
+ typ: this.stateType,
27
+ id: this.id
49
28
  };
50
- if (this.id) {
51
- obj.id = this.id;
52
- }
53
- if (verbose) {
54
- obj["@type"] = "CryptoPublicState";
29
+ }
30
+ static preFrom(value) {
31
+ if (value.nnc) {
32
+ value = {
33
+ nonce: value.nnc,
34
+ algorithm: value.alg,
35
+ stateType: value.typ,
36
+ id: value.id
37
+ };
55
38
  }
56
- return obj;
39
+ CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.algorithm);
40
+ CryptoValidation_1.CryptoValidation.checkStateType(value.stateType);
41
+ CryptoValidation_1.CryptoValidation.checkNonce(value.nonce, value.algorithm);
42
+ return value;
57
43
  }
58
44
  static from(value) {
59
- return new CryptoPublicState_1(value.nonce, value.algorithm, value.stateType, value.id);
45
+ return this.fromAny(value);
60
46
  }
61
47
  static fromJSON(value) {
62
- let error;
63
- error = CryptoValidation_1.CryptoValidation.checkEncryptionAlgorithm(value.alg);
64
- if (error)
65
- throw error;
66
- error = CryptoValidation_1.CryptoValidation.checkStateType(value.typ);
67
- if (error)
68
- throw error;
69
- error = CryptoValidation_1.CryptoValidation.checkNonceAsString(value.nnc, value.alg);
70
- if (error)
71
- throw error;
72
- const buffer = CoreBuffer_1.CoreBuffer.fromBase64URL(value.nnc);
73
- return new CryptoPublicState_1(buffer, value.alg, value.typ, value.id);
48
+ return this.fromAny(value);
74
49
  }
75
50
  static fromBase64(value) {
76
51
  return this.deserialize(CoreBuffer_1.CoreBuffer.base64_utf8(value));
77
52
  }
78
- static deserialize(value) {
79
- return this.fromJSON(JSON.parse(value));
80
- }
81
53
  };
82
- CryptoPublicState = CryptoPublicState_1 = __decorate([
83
- (0, ts_serval_1.type)("CryptoPublicState"),
84
- __metadata("design:paramtypes", [CoreBuffer_1.CoreBuffer, Number, Number, String])
54
+ __decorate([
55
+ (0, ts_serval_1.validate)({ nullable: true }),
56
+ (0, ts_serval_1.serialize)(),
57
+ __metadata("design:type", String)
58
+ ], CryptoPublicState.prototype, "id", void 0);
59
+ __decorate([
60
+ (0, ts_serval_1.validate)(),
61
+ (0, ts_serval_1.serialize)(),
62
+ __metadata("design:type", CoreBuffer_1.CoreBuffer)
63
+ ], CryptoPublicState.prototype, "nonce", void 0);
64
+ __decorate([
65
+ (0, ts_serval_1.validate)(),
66
+ (0, ts_serval_1.serialize)(),
67
+ __metadata("design:type", Number)
68
+ ], CryptoPublicState.prototype, "algorithm", void 0);
69
+ __decorate([
70
+ (0, ts_serval_1.validate)(),
71
+ (0, ts_serval_1.serialize)(),
72
+ __metadata("design:type", Number)
73
+ ], CryptoPublicState.prototype, "stateType", void 0);
74
+ CryptoPublicState = __decorate([
75
+ (0, ts_serval_1.type)("CryptoPublicState")
85
76
  ], CryptoPublicState);
86
77
  exports.CryptoPublicState = CryptoPublicState;
87
78
  //# sourceMappingURL=CryptoPublicState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPublicState.js","sourceRoot":"","sources":["../../src/state/CryptoPublicState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPublicState.js","sourceRoot":"","sources":["../../src/state/CryptoPublicState.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAyG;AACzG,8CAAuD;AACvD,0DAAuD;AAEvD,uDAAoD;AAiBpD,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,wBAAY;IAiBxC,KAAK;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEe,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC,OAAO;YACH,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YAClD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;SACd,CAAC;IACN,CAAC;IAES,MAAM,CAAU,OAAO,CAAC,KAAU;QACxC,IAAI,KAAK,CAAC,GAAG,EAAE;YACX,KAAK,GAAG;gBACJ,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE;aACf,CAAC;SACL;QAED,mCAAgB,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3D,mCAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,mCAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAA6C;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAmC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,KAAa;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ,CAAA;AAxDG;IAFC,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAA,qBAAS,GAAE;;6CACO;AAInB;IAFC,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;8BACE,uBAAU;gDAAC;AAIzB;IAFC,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;oDACgC;AAI5C;IAFC,IAAA,oBAAQ,GAAE;IACV,IAAA,qBAAS,GAAE;;oDACsB;AAfzB,iBAAiB;IAD7B,IAAA,gBAAI,EAAC,mBAAmB,CAAC;GACb,iBAAiB,CA2D7B;AA3DY,8CAAiB"}