@ajna-inc/vaults 0.1.0 → 0.1.2
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/build/VaultsApi.d.ts +363 -0
- package/build/VaultsApi.js +450 -248
- package/build/VaultsApi.js.map +1 -0
- package/build/VaultsEvents.d.ts +227 -0
- package/build/VaultsEvents.js +8 -0
- package/build/VaultsEvents.js.map +1 -0
- package/build/VaultsModule.d.ts +64 -0
- package/build/VaultsModule.js +43 -18
- package/build/VaultsModule.js.map +1 -0
- package/build/crypto/wasm/VaultCrypto.d.ts +19 -0
- package/build/crypto/wasm/VaultCrypto.js +29 -42
- package/build/crypto/wasm/VaultCrypto.js.map +1 -0
- package/build/errors/BadSuiteError.d.ts +8 -0
- package/build/errors/BadSuiteError.js +8 -25
- package/build/errors/BadSuiteError.js.map +1 -0
- package/build/errors/DecryptAeadError.d.ts +8 -0
- package/build/errors/DecryptAeadError.js +8 -25
- package/build/errors/DecryptAeadError.js.map +1 -0
- package/build/errors/DecryptKemError.d.ts +8 -0
- package/build/errors/DecryptKemError.js +8 -25
- package/build/errors/DecryptKemError.js.map +1 -0
- package/build/errors/PolicyError.d.ts +8 -0
- package/build/errors/PolicyError.js +8 -25
- package/build/errors/PolicyError.js.map +1 -0
- package/build/errors/VaultError.d.ts +52 -0
- package/build/errors/VaultError.js +19 -30
- package/build/errors/VaultError.js.map +1 -0
- package/build/errors/index.d.ts +5 -0
- package/build/errors/index.js +1 -0
- package/build/errors/index.js.map +1 -0
- package/build/handlers/CreateVaultHandler.d.ts +18 -0
- package/build/handlers/CreateVaultHandler.js +75 -0
- package/build/handlers/CreateVaultHandler.js.map +1 -0
- package/build/handlers/DeleteVaultHandler.d.ts +17 -0
- package/build/handlers/DeleteVaultHandler.js +48 -0
- package/build/handlers/DeleteVaultHandler.js.map +1 -0
- package/build/handlers/DenyAccessHandler.d.ts +15 -0
- package/build/handlers/DenyAccessHandler.js +39 -0
- package/build/handlers/DenyAccessHandler.js.map +1 -0
- package/build/handlers/DenyShareHandler.d.ts +17 -0
- package/build/handlers/DenyShareHandler.js +49 -0
- package/build/handlers/DenyShareHandler.js.map +1 -0
- package/build/handlers/GrantAccessHandler.d.ts +17 -0
- package/build/handlers/GrantAccessHandler.js +59 -0
- package/build/handlers/GrantAccessHandler.js.map +1 -0
- package/build/handlers/ProvideShareHandler.d.ts +17 -0
- package/build/handlers/ProvideShareHandler.js +77 -0
- package/build/handlers/ProvideShareHandler.js.map +1 -0
- package/build/handlers/RequestAccessHandler.d.ts +18 -0
- package/build/handlers/RequestAccessHandler.js +60 -0
- package/build/handlers/RequestAccessHandler.js.map +1 -0
- package/build/handlers/RequestShareHandler.d.ts +19 -0
- package/build/handlers/RequestShareHandler.js +70 -0
- package/build/handlers/RequestShareHandler.js.map +1 -0
- package/build/handlers/RequestStorageHandler.d.ts +53 -0
- package/build/handlers/RequestStorageHandler.js +158 -0
- package/build/handlers/RequestStorageHandler.js.map +1 -0
- package/build/handlers/RetrieveVaultHandler.d.ts +18 -0
- package/build/handlers/RetrieveVaultHandler.js +65 -0
- package/build/handlers/RetrieveVaultHandler.js.map +1 -0
- package/build/handlers/StoreVaultHandler.d.ts +17 -0
- package/build/handlers/StoreVaultHandler.js +77 -0
- package/build/handlers/StoreVaultHandler.js.map +1 -0
- package/build/handlers/UpdateVaultHandler.d.ts +18 -0
- package/build/handlers/UpdateVaultHandler.js +77 -0
- package/build/handlers/UpdateVaultHandler.js.map +1 -0
- package/build/handlers/VaultCreatedAckHandler.d.ts +15 -0
- package/build/handlers/VaultCreatedAckHandler.js +39 -0
- package/build/handlers/VaultCreatedAckHandler.js.map +1 -0
- package/build/handlers/VaultDataHandler.d.ts +19 -0
- package/build/handlers/VaultDataHandler.js +68 -0
- package/build/handlers/VaultDataHandler.js.map +1 -0
- package/build/handlers/VaultProblemReportHandler.d.ts +17 -0
- package/build/handlers/VaultProblemReportHandler.js +40 -0
- package/build/handlers/VaultProblemReportHandler.js.map +1 -0
- package/build/handlers/VaultReferenceHandler.d.ts +33 -0
- package/build/handlers/VaultReferenceHandler.js +169 -0
- package/build/handlers/VaultReferenceHandler.js.map +1 -0
- package/build/handlers/VaultStoredAckHandler.d.ts +15 -0
- package/build/handlers/VaultStoredAckHandler.js +38 -0
- package/build/handlers/VaultStoredAckHandler.js.map +1 -0
- package/build/handlers/index.d.ts +17 -0
- package/build/handlers/index.js +44 -0
- package/build/handlers/index.js.map +1 -0
- package/build/index.d.ts +42 -0
- package/build/index.js +13 -1
- package/build/index.js.map +1 -0
- package/build/messages/CreateVaultMessage.d.ts +39 -0
- package/build/messages/CreateVaultMessage.js +65 -115
- package/build/messages/CreateVaultMessage.js.map +1 -0
- package/build/messages/DeleteVaultMessage.d.ts +22 -0
- package/build/messages/DeleteVaultMessage.js +51 -103
- package/build/messages/DeleteVaultMessage.js.map +1 -0
- package/build/messages/DenyAccessMessage.d.ts +22 -0
- package/build/messages/DenyAccessMessage.js +50 -103
- package/build/messages/DenyAccessMessage.js.map +1 -0
- package/build/messages/DenyShareMessage.d.ts +24 -0
- package/build/messages/DenyShareMessage.js +56 -109
- package/build/messages/DenyShareMessage.js.map +1 -0
- package/build/messages/GrantAccessMessage.d.ts +32 -0
- package/build/messages/GrantAccessMessage.js +63 -115
- package/build/messages/GrantAccessMessage.js.map +1 -0
- package/build/messages/ProvideShareMessage.d.ts +26 -0
- package/build/messages/ProvideShareMessage.js +62 -115
- package/build/messages/ProvideShareMessage.js.map +1 -0
- package/build/messages/ProvideStorageMessage.d.ts +90 -0
- package/build/messages/ProvideStorageMessage.js +193 -0
- package/build/messages/ProvideStorageMessage.js.map +1 -0
- package/build/messages/RequestAccessMessage.d.ts +30 -0
- package/build/messages/RequestAccessMessage.js +57 -109
- package/build/messages/RequestAccessMessage.js.map +1 -0
- package/build/messages/RequestShareMessage.d.ts +24 -0
- package/build/messages/RequestShareMessage.js +56 -109
- package/build/messages/RequestShareMessage.js.map +1 -0
- package/build/messages/RequestStorageMessage.d.ts +50 -0
- package/build/messages/RequestStorageMessage.js +98 -0
- package/build/messages/RequestStorageMessage.js.map +1 -0
- package/build/messages/RetrieveVaultMessage.d.ts +20 -0
- package/build/messages/RetrieveVaultMessage.js +44 -97
- package/build/messages/RetrieveVaultMessage.js.map +1 -0
- package/build/messages/StoreVaultMessage.d.ts +23 -0
- package/build/messages/StoreVaultMessage.js +51 -103
- package/build/messages/StoreVaultMessage.js.map +1 -0
- package/build/messages/UpdateVaultMessage.d.ts +25 -0
- package/build/messages/UpdateVaultMessage.js +58 -109
- package/build/messages/UpdateVaultMessage.js.map +1 -0
- package/build/messages/VaultCreatedAckMessage.d.ts +20 -0
- package/build/messages/VaultCreatedAckMessage.js +44 -97
- package/build/messages/VaultCreatedAckMessage.js.map +1 -0
- package/build/messages/VaultDataMessage.d.ts +34 -0
- package/build/messages/VaultDataMessage.js +59 -110
- package/build/messages/VaultDataMessage.js.map +1 -0
- package/build/messages/VaultProblemReportMessage.d.ts +35 -0
- package/build/messages/VaultProblemReportMessage.js +56 -102
- package/build/messages/VaultProblemReportMessage.js.map +1 -0
- package/build/messages/VaultReferenceMessage.d.ts +66 -0
- package/build/messages/VaultReferenceMessage.js +138 -0
- package/build/messages/VaultReferenceMessage.js.map +1 -0
- package/build/messages/VaultStoredAckMessage.d.ts +33 -0
- package/build/messages/VaultStoredAckMessage.js +51 -104
- package/build/messages/VaultStoredAckMessage.js.map +1 -0
- package/build/messages/index.d.ts +18 -0
- package/build/messages/index.js +6 -1
- package/build/messages/index.js.map +1 -0
- package/build/models/ThresholdSession.d.ts +37 -0
- package/build/models/ThresholdSession.js +1 -0
- package/build/models/ThresholdSession.js.map +1 -0
- package/build/models/VaultDocument.d.ts +22 -0
- package/build/models/VaultDocument.js +1 -0
- package/build/models/VaultDocument.js.map +1 -0
- package/build/models/VaultHeader.d.ts +92 -0
- package/build/models/VaultHeader.js +4 -6
- package/build/models/VaultHeader.js.map +1 -0
- package/build/models/VaultPolicy.d.ts +24 -0
- package/build/models/VaultPolicy.js +1 -0
- package/build/models/VaultPolicy.js.map +1 -0
- package/build/models/index.d.ts +4 -0
- package/build/models/index.js +1 -0
- package/build/models/index.js.map +1 -0
- package/build/repository/KemKeypairRecord.d.ts +37 -0
- package/build/repository/KemKeypairRecord.js +35 -0
- package/build/repository/KemKeypairRecord.js.map +1 -0
- package/build/repository/KemKeypairRepository.d.ts +18 -0
- package/build/repository/KemKeypairRepository.js +50 -0
- package/build/repository/KemKeypairRepository.js.map +1 -0
- package/build/repository/ThresholdSessionRecord.d.ts +93 -0
- package/build/repository/ThresholdSessionRecord.js +58 -92
- package/build/repository/ThresholdSessionRecord.js.map +1 -0
- package/build/repository/ThresholdSessionRepository.d.ts +35 -0
- package/build/repository/ThresholdSessionRepository.js +72 -208
- package/build/repository/ThresholdSessionRepository.js.map +1 -0
- package/build/repository/VaultRecord.d.ts +105 -0
- package/build/repository/VaultRecord.js +94 -115
- package/build/repository/VaultRecord.js.map +1 -0
- package/build/repository/VaultRepository.d.ts +35 -0
- package/build/repository/VaultRepository.js +66 -192
- package/build/repository/VaultRepository.js.map +1 -0
- package/build/repository/index.d.ts +9 -0
- package/build/repository/index.js +7 -1
- package/build/repository/index.js.map +1 -0
- package/build/services/HPKEService.d.ts +67 -0
- package/build/services/HPKEService.js +106 -0
- package/build/services/HPKEService.js.map +1 -0
- package/build/services/KemKeyExchangeService.d.ts +207 -0
- package/build/services/KemKeyExchangeService.js +323 -0
- package/build/services/KemKeyExchangeService.js.map +1 -0
- package/build/services/VaultEncryptionService.d.ts +120 -0
- package/build/services/VaultEncryptionService.js +469 -588
- package/build/services/VaultEncryptionService.js.map +1 -0
- package/build/services/VaultService.d.ts +127 -0
- package/build/services/VaultService.js +224 -376
- package/build/services/VaultService.js.map +1 -0
- package/build/services/VaultSigningService.d.ts +216 -0
- package/build/services/VaultSigningService.js +498 -0
- package/build/services/VaultSigningService.js.map +1 -0
- package/build/services/index.d.ts +9 -0
- package/build/services/index.js +10 -1
- package/build/services/index.js.map +1 -0
- package/build/storage/VaultStorageConfig.d.ts +97 -0
- package/build/storage/VaultStorageConfig.js +22 -0
- package/build/storage/VaultStorageConfig.js.map +1 -0
- package/build/storage/VaultStorageService.d.ts +118 -0
- package/build/storage/VaultStorageService.js +381 -0
- package/build/storage/VaultStorageService.js.map +1 -0
- package/build/storage/index.d.ts +2 -0
- package/build/storage/index.js +21 -0
- package/build/storage/index.js.map +1 -0
- package/package.json +5 -2
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.DecryptKemError = void 0;
|
|
19
|
-
|
|
4
|
+
const VaultError_1 = require("./VaultError");
|
|
20
5
|
/**
|
|
21
6
|
* Error thrown when KEM decapsulation fails
|
|
22
7
|
* Spec §11: ERR_DECRYPT_KEM - no recipient wrap decapsulated
|
|
23
8
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Object.setPrototypeOf(_this, DecryptKemError.prototype);
|
|
30
|
-
return _this;
|
|
9
|
+
class DecryptKemError extends VaultError_1.VaultError {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(VaultError_1.VaultErrorCode.DECRYPT_KEM, message);
|
|
12
|
+
this.name = 'DecryptKemError';
|
|
13
|
+
Object.setPrototypeOf(this, DecryptKemError.prototype);
|
|
31
14
|
}
|
|
32
|
-
|
|
33
|
-
}(VaultError_1.VaultError));
|
|
15
|
+
}
|
|
34
16
|
exports.DecryptKemError = DecryptKemError;
|
|
17
|
+
//# sourceMappingURL=DecryptKemError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DecryptKemError.js","sourceRoot":"","sources":["../../src/errors/DecryptKemError.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAEzD;;;GAGG;AACH,MAAa,eAAgB,SAAQ,uBAAU;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,2BAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;CACF;AAND,0CAMC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { VaultError } from './VaultError';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when policy is malformed or inconsistent
|
|
4
|
+
* Spec §11: ERR_POLICY - header policy malformed or inconsistent
|
|
5
|
+
*/
|
|
6
|
+
export declare class PolicyError extends VaultError {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.PolicyError = void 0;
|
|
19
|
-
|
|
4
|
+
const VaultError_1 = require("./VaultError");
|
|
20
5
|
/**
|
|
21
6
|
* Error thrown when policy is malformed or inconsistent
|
|
22
7
|
* Spec §11: ERR_POLICY - header policy malformed or inconsistent
|
|
23
8
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Object.setPrototypeOf(_this, PolicyError.prototype);
|
|
30
|
-
return _this;
|
|
9
|
+
class PolicyError extends VaultError_1.VaultError {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(VaultError_1.VaultErrorCode.POLICY, message);
|
|
12
|
+
this.name = 'PolicyError';
|
|
13
|
+
Object.setPrototypeOf(this, PolicyError.prototype);
|
|
31
14
|
}
|
|
32
|
-
|
|
33
|
-
}(VaultError_1.VaultError));
|
|
15
|
+
}
|
|
34
16
|
exports.PolicyError = PolicyError;
|
|
17
|
+
//# sourceMappingURL=PolicyError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolicyError.js","sourceRoot":"","sources":["../../src/errors/PolicyError.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAEzD;;;GAGG;AACH,MAAa,WAAY,SAAQ,uBAAU;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,2BAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;CACF;AAND,kCAMC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault Error Codes per ZK-Vault Specification §11
|
|
3
|
+
*/
|
|
4
|
+
export declare enum VaultErrorCode {
|
|
5
|
+
/** Unknown or unsupported suite */
|
|
6
|
+
BAD_SUITE = "ERR_BAD_SUITE",
|
|
7
|
+
/** STARK verification failed */
|
|
8
|
+
BAD_PROOF = "ERR_BAD_PROOF",
|
|
9
|
+
/** Nonce reused (replay attack detected) */
|
|
10
|
+
REPLAY = "ERR_REPLAY",
|
|
11
|
+
/** Proof exceeds maxProofBytes */
|
|
12
|
+
SIZE = "ERR_SIZE",
|
|
13
|
+
/** Unknown or stale context */
|
|
14
|
+
CTX = "ERR_CTX",
|
|
15
|
+
/** No recipient wrap decapsulated */
|
|
16
|
+
DECRYPT_KEM = "ERR_DECRYPT_KEM",
|
|
17
|
+
/** AEAD tag failure (AAD tamper or wrong CEK) */
|
|
18
|
+
DECRYPT_AEAD = "ERR_DECRYPT_AEAD",
|
|
19
|
+
/** Header policy malformed or inconsistent */
|
|
20
|
+
POLICY = "ERR_POLICY",
|
|
21
|
+
/** Vault not found */
|
|
22
|
+
NOT_FOUND = "ERR_NOT_FOUND",
|
|
23
|
+
/** Threshold not met for reconstruction */
|
|
24
|
+
THRESHOLD_NOT_MET = "ERR_THRESHOLD_NOT_MET",
|
|
25
|
+
/** Session expired */
|
|
26
|
+
SESSION_EXPIRED = "ERR_SESSION_EXPIRED",
|
|
27
|
+
/** Storage operation failed */
|
|
28
|
+
STORAGE = "ERR_STORAGE",
|
|
29
|
+
/** Storage operation failed (alias for STORAGE) */
|
|
30
|
+
STORAGE_ERROR = "ERR_STORAGE",
|
|
31
|
+
/** Data integrity check failed (checksum mismatch) */
|
|
32
|
+
INTEGRITY_CHECK_FAILED = "ERR_INTEGRITY",
|
|
33
|
+
/** Invalid key commitment */
|
|
34
|
+
KEY_COMMITMENT = "ERR_KEY_COMMITMENT",
|
|
35
|
+
/** Invalid or missing key for operation */
|
|
36
|
+
INVALID_KEY = "ERR_INVALID_KEY"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Base error class for all vault-related errors
|
|
40
|
+
*/
|
|
41
|
+
export declare class VaultError extends Error {
|
|
42
|
+
readonly code: VaultErrorCode;
|
|
43
|
+
constructor(code: VaultErrorCode, message: string);
|
|
44
|
+
/**
|
|
45
|
+
* Check if error matches a specific code
|
|
46
|
+
*/
|
|
47
|
+
is(code: VaultErrorCode): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Create a human-readable error message
|
|
50
|
+
*/
|
|
51
|
+
toString(): string;
|
|
52
|
+
}
|
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.VaultError = exports.VaultErrorCode = void 0;
|
|
19
4
|
/**
|
|
@@ -45,33 +30,37 @@ var VaultErrorCode;
|
|
|
45
30
|
VaultErrorCode["SESSION_EXPIRED"] = "ERR_SESSION_EXPIRED";
|
|
46
31
|
/** Storage operation failed */
|
|
47
32
|
VaultErrorCode["STORAGE"] = "ERR_STORAGE";
|
|
33
|
+
/** Storage operation failed (alias for STORAGE) */
|
|
34
|
+
VaultErrorCode["STORAGE_ERROR"] = "ERR_STORAGE";
|
|
35
|
+
/** Data integrity check failed (checksum mismatch) */
|
|
36
|
+
VaultErrorCode["INTEGRITY_CHECK_FAILED"] = "ERR_INTEGRITY";
|
|
48
37
|
/** Invalid key commitment */
|
|
49
38
|
VaultErrorCode["KEY_COMMITMENT"] = "ERR_KEY_COMMITMENT";
|
|
39
|
+
/** Invalid or missing key for operation */
|
|
40
|
+
VaultErrorCode["INVALID_KEY"] = "ERR_INVALID_KEY";
|
|
50
41
|
})(VaultErrorCode || (exports.VaultErrorCode = VaultErrorCode = {}));
|
|
51
42
|
/**
|
|
52
43
|
* Base error class for all vault-related errors
|
|
53
44
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Object.setPrototypeOf(_this, VaultError.prototype);
|
|
61
|
-
return _this;
|
|
45
|
+
class VaultError extends Error {
|
|
46
|
+
constructor(code, message) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.code = code;
|
|
49
|
+
this.name = 'VaultError';
|
|
50
|
+
Object.setPrototypeOf(this, VaultError.prototype);
|
|
62
51
|
}
|
|
63
52
|
/**
|
|
64
53
|
* Check if error matches a specific code
|
|
65
54
|
*/
|
|
66
|
-
|
|
55
|
+
is(code) {
|
|
67
56
|
return this.code === code;
|
|
68
|
-
}
|
|
57
|
+
}
|
|
69
58
|
/**
|
|
70
59
|
* Create a human-readable error message
|
|
71
60
|
*/
|
|
72
|
-
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
}(Error));
|
|
61
|
+
toString() {
|
|
62
|
+
return `[${this.code}] ${this.message}`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
77
65
|
exports.VaultError = VaultError;
|
|
66
|
+
//# sourceMappingURL=VaultError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VaultError.js","sourceRoot":"","sources":["../../src/errors/VaultError.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,cAgDX;AAhDD,WAAY,cAAc;IACxB,mCAAmC;IACnC,6CAA2B,CAAA;IAE3B,gCAAgC;IAChC,6CAA2B,CAAA;IAE3B,4CAA4C;IAC5C,uCAAqB,CAAA;IAErB,kCAAkC;IAClC,mCAAiB,CAAA;IAEjB,+BAA+B;IAC/B,iCAAe,CAAA;IAEf,qCAAqC;IACrC,iDAA+B,CAAA;IAE/B,iDAAiD;IACjD,mDAAiC,CAAA;IAEjC,8CAA8C;IAC9C,uCAAqB,CAAA;IAErB,sBAAsB;IACtB,6CAA2B,CAAA;IAE3B,2CAA2C;IAC3C,6DAA2C,CAAA;IAE3C,sBAAsB;IACtB,yDAAuC,CAAA;IAEvC,+BAA+B;IAC/B,yCAAuB,CAAA;IAEvB,mDAAmD;IACnD,+CAA6B,CAAA;IAE7B,sDAAsD;IACtD,0DAAwC,CAAA;IAExC,6BAA6B;IAC7B,uDAAqC,CAAA;IAErC,2CAA2C;IAC3C,iDAA+B,CAAA;AACjC,CAAC,EAhDW,cAAc,8BAAd,cAAc,QAgDzB;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,KAAK;IAGnC,YAAY,IAAoB,EAAE,OAAe;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACI,EAAE,CAAC,IAAoB;QAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IAC3B,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;IACzC,CAAC;CACF;AAvBD,gCAuBC"}
|
package/build/errors/index.js
CHANGED
|
@@ -14,3 +14,4 @@ var DecryptAeadError_1 = require("./DecryptAeadError");
|
|
|
14
14
|
Object.defineProperty(exports, "DecryptAeadError", { enumerable: true, get: function () { return DecryptAeadError_1.DecryptAeadError; } });
|
|
15
15
|
var PolicyError_1 = require("./PolicyError");
|
|
16
16
|
Object.defineProperty(exports, "PolicyError", { enumerable: true, get: function () { return PolicyError_1.PolicyError; } });
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,2CAAyD;AAAhD,wGAAA,UAAU,OAAA;AAAE,4GAAA,cAAc,OAAA;AAEnC,uBAAuB;AACvB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,6CAA2C;AAAlC,0GAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for create-vault messages
|
|
3
|
+
*
|
|
4
|
+
* Receives notification about a new vault creation.
|
|
5
|
+
* Used for multi-party vaults where participants need to be notified.
|
|
6
|
+
*/
|
|
7
|
+
import type { MessageHandler, MessageHandlerInboundMessage, Logger } from '@credo-ts/core';
|
|
8
|
+
import { EventEmitter, OutboundMessageContext } from '@credo-ts/core';
|
|
9
|
+
import { CreateVaultMessage, VaultCreatedAckMessage } from '../messages';
|
|
10
|
+
import { VaultRepository } from '../repository/VaultRepository';
|
|
11
|
+
export declare class CreateVaultHandler implements MessageHandler {
|
|
12
|
+
private logger;
|
|
13
|
+
private vaultRepository;
|
|
14
|
+
private eventEmitter;
|
|
15
|
+
supportedMessages: (typeof CreateVaultMessage)[];
|
|
16
|
+
constructor(logger: Logger, vaultRepository: VaultRepository, eventEmitter: EventEmitter);
|
|
17
|
+
handle(messageContext: MessageHandlerInboundMessage<CreateVaultHandler>): Promise<OutboundMessageContext<VaultCreatedAckMessage>>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Handler for create-vault messages
|
|
4
|
+
*
|
|
5
|
+
* Receives notification about a new vault creation.
|
|
6
|
+
* Used for multi-party vaults where participants need to be notified.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CreateVaultHandler = void 0;
|
|
10
|
+
const core_1 = require("@credo-ts/core");
|
|
11
|
+
const messages_1 = require("../messages");
|
|
12
|
+
const VaultRecord_1 = require("../repository/VaultRecord");
|
|
13
|
+
const VaultsEvents_1 = require("../VaultsEvents");
|
|
14
|
+
class CreateVaultHandler {
|
|
15
|
+
constructor(logger, vaultRepository, eventEmitter) {
|
|
16
|
+
this.supportedMessages = [messages_1.CreateVaultMessage];
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
this.vaultRepository = vaultRepository;
|
|
19
|
+
this.eventEmitter = eventEmitter;
|
|
20
|
+
}
|
|
21
|
+
async handle(messageContext) {
|
|
22
|
+
const { agentContext, connection, message } = messageContext;
|
|
23
|
+
this.logger.debug(`Received create-vault notification for ${message.vaultId}`, {
|
|
24
|
+
vaultId: message.vaultId,
|
|
25
|
+
docId: message.docId,
|
|
26
|
+
policy: message.policy,
|
|
27
|
+
connectionId: connection?.id,
|
|
28
|
+
});
|
|
29
|
+
// Check if we're already tracking this vault
|
|
30
|
+
const existing = await this.vaultRepository.findByVaultId(agentContext, message.vaultId);
|
|
31
|
+
if (existing) {
|
|
32
|
+
this.logger.debug(`Vault ${message.vaultId} already exists, acknowledging`);
|
|
33
|
+
const ackMessage = new messages_1.VaultCreatedAckMessage({
|
|
34
|
+
vaultId: message.vaultId,
|
|
35
|
+
status: 'accepted',
|
|
36
|
+
});
|
|
37
|
+
return new core_1.OutboundMessageContext(ackMessage, { agentContext, connection });
|
|
38
|
+
}
|
|
39
|
+
// Create a record to track this vault (without ciphertext - that comes later)
|
|
40
|
+
const record = new VaultRecord_1.VaultRecord({
|
|
41
|
+
vaultId: message.vaultId,
|
|
42
|
+
docId: message.docId,
|
|
43
|
+
header: message.header,
|
|
44
|
+
ciphertext: '', // Will be populated when we receive the actual data
|
|
45
|
+
ownerDid: agentContext.contextCorrelationId,
|
|
46
|
+
});
|
|
47
|
+
// Add metadata about the creation notification
|
|
48
|
+
record.header.metadata = {
|
|
49
|
+
...record.header.metadata,
|
|
50
|
+
createdBy: connection?.id,
|
|
51
|
+
notifiedAt: new Date().toISOString(),
|
|
52
|
+
storageLocation: message.storageLocation,
|
|
53
|
+
invitation: message.invitation,
|
|
54
|
+
};
|
|
55
|
+
await this.vaultRepository.save(agentContext, record);
|
|
56
|
+
// Emit event
|
|
57
|
+
this.eventEmitter.emit(agentContext, {
|
|
58
|
+
type: VaultsEvents_1.VaultEventTypes.VaultCreated,
|
|
59
|
+
payload: {
|
|
60
|
+
vaultId: message.vaultId,
|
|
61
|
+
docId: message.docId,
|
|
62
|
+
policyMode: message.policy.mode,
|
|
63
|
+
createdBy: connection?.id,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
// Send acceptance
|
|
67
|
+
const ackMessage = new messages_1.VaultCreatedAckMessage({
|
|
68
|
+
vaultId: message.vaultId,
|
|
69
|
+
status: 'accepted',
|
|
70
|
+
});
|
|
71
|
+
return new core_1.OutboundMessageContext(ackMessage, { agentContext, connection });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.CreateVaultHandler = CreateVaultHandler;
|
|
75
|
+
//# sourceMappingURL=CreateVaultHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateVaultHandler.js","sourceRoot":"","sources":["../../src/handlers/CreateVaultHandler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,yCAAqE;AAErE,0CAAwE;AAExE,2DAAuD;AACvD,kDAAiD;AAEjD,MAAa,kBAAkB;IAM7B,YAAmB,MAAc,EAAE,eAAgC,EAAE,YAA0B;QAFxF,sBAAiB,GAAG,CAAC,6BAAkB,CAAC,CAAA;QAG7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,cAAgE;QAClF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAA;QAE5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,OAAO,CAAC,OAAO,EAAE,EAAE;YAC7E,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,UAAU,EAAE,EAAE;SAC7B,CAAC,CAAA;QAEF,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAExF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,OAAO,gCAAgC,CAAC,CAAA;YAC3E,MAAM,UAAU,GAAG,IAAI,iCAAsB,CAAC;gBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;YACF,OAAO,IAAI,6BAAsB,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7E,CAAC;QAED,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,yBAAW,CAAC;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,EAAE,EAAE,oDAAoD;YACpE,QAAQ,EAAE,YAAY,CAAC,oBAAoB;SAC5C,CAAC,CAAA;QAEF,+CAA+C;QAC/C,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG;YACvB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,UAAU,EAAE,EAAE;YACzB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAErD,aAAa;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,8BAAe,CAAC,YAAY;YAClC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBAC/B,SAAS,EAAE,UAAU,EAAE,EAAE;aAC1B;SACF,CAAC,CAAA;QAEF,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,iCAAsB,CAAC;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAA;QAEF,OAAO,IAAI,6BAAsB,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7E,CAAC;CACF;AAzED,gDAyEC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for delete-vault messages
|
|
3
|
+
*
|
|
4
|
+
* Receives vault deletion notifications and removes local copy.
|
|
5
|
+
*/
|
|
6
|
+
import type { MessageHandler, MessageHandlerInboundMessage, Logger } from '@credo-ts/core';
|
|
7
|
+
import { EventEmitter } from '@credo-ts/core';
|
|
8
|
+
import { DeleteVaultMessage } from '../messages';
|
|
9
|
+
import { VaultRepository } from '../repository/VaultRepository';
|
|
10
|
+
export declare class DeleteVaultHandler implements MessageHandler {
|
|
11
|
+
private logger;
|
|
12
|
+
private vaultRepository;
|
|
13
|
+
private eventEmitter;
|
|
14
|
+
supportedMessages: (typeof DeleteVaultMessage)[];
|
|
15
|
+
constructor(logger: Logger, vaultRepository: VaultRepository, eventEmitter: EventEmitter);
|
|
16
|
+
handle(messageContext: MessageHandlerInboundMessage<DeleteVaultHandler>): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Handler for delete-vault messages
|
|
4
|
+
*
|
|
5
|
+
* Receives vault deletion notifications and removes local copy.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.DeleteVaultHandler = void 0;
|
|
9
|
+
const messages_1 = require("../messages");
|
|
10
|
+
const VaultsEvents_1 = require("../VaultsEvents");
|
|
11
|
+
class DeleteVaultHandler {
|
|
12
|
+
constructor(logger, vaultRepository, eventEmitter) {
|
|
13
|
+
this.supportedMessages = [messages_1.DeleteVaultMessage];
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.vaultRepository = vaultRepository;
|
|
16
|
+
this.eventEmitter = eventEmitter;
|
|
17
|
+
}
|
|
18
|
+
async handle(messageContext) {
|
|
19
|
+
const { agentContext, connection, message } = messageContext;
|
|
20
|
+
this.logger.debug(`Received delete-vault for ${message.vaultId}`, {
|
|
21
|
+
vaultId: message.vaultId,
|
|
22
|
+
reason: message.reason,
|
|
23
|
+
connectionId: connection?.id,
|
|
24
|
+
});
|
|
25
|
+
// Find existing vault
|
|
26
|
+
const existing = await this.vaultRepository.findByVaultId(agentContext, message.vaultId);
|
|
27
|
+
if (!existing) {
|
|
28
|
+
this.logger.debug(`Vault ${message.vaultId} not found locally, ignoring delete`);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Delete vault
|
|
32
|
+
await this.vaultRepository.delete(agentContext, existing);
|
|
33
|
+
// Emit event
|
|
34
|
+
this.eventEmitter.emit(agentContext, {
|
|
35
|
+
type: VaultsEvents_1.VaultEventTypes.VaultDeleted,
|
|
36
|
+
payload: {
|
|
37
|
+
vaultId: message.vaultId,
|
|
38
|
+
docId: message.docId,
|
|
39
|
+
deletedBy: connection?.id,
|
|
40
|
+
reason: message.reason,
|
|
41
|
+
message: message.message,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
this.logger.info(`Vault ${message.vaultId} deleted (reason: ${message.reason})`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.DeleteVaultHandler = DeleteVaultHandler;
|
|
48
|
+
//# sourceMappingURL=DeleteVaultHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteVaultHandler.js","sourceRoot":"","sources":["../../src/handlers/DeleteVaultHandler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAMH,0CAAgD;AAEhD,kDAAiD;AAEjD,MAAa,kBAAkB;IAM7B,YAAmB,MAAc,EAAE,eAAgC,EAAE,YAA0B;QAFxF,sBAAiB,GAAG,CAAC,6BAAkB,CAAC,CAAA;QAG7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,cAAgE;QAClF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAA;QAE5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,OAAO,CAAC,OAAO,EAAE,EAAE;YAChE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,UAAU,EAAE,EAAE;SAC7B,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAExF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,OAAO,qCAAqC,CAAC,CAAA;YAChF,OAAM;QACR,CAAC;QAED,eAAe;QACf,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAEzD,aAAa;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,8BAAe,CAAC,YAAY;YAClC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,UAAU,EAAE,EAAE;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAClF,CAAC;CACF;AA9CD,gDA8CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for deny-access messages
|
|
3
|
+
*
|
|
4
|
+
* Receives notification that access request was denied.
|
|
5
|
+
*/
|
|
6
|
+
import type { MessageHandler, MessageHandlerInboundMessage, Logger } from '@credo-ts/core';
|
|
7
|
+
import { EventEmitter } from '@credo-ts/core';
|
|
8
|
+
import { DenyAccessMessage } from '../messages';
|
|
9
|
+
export declare class DenyAccessHandler implements MessageHandler {
|
|
10
|
+
private logger;
|
|
11
|
+
private eventEmitter;
|
|
12
|
+
supportedMessages: (typeof DenyAccessMessage)[];
|
|
13
|
+
constructor(logger: Logger, eventEmitter: EventEmitter);
|
|
14
|
+
handle(messageContext: MessageHandlerInboundMessage<DenyAccessHandler>): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Handler for deny-access messages
|
|
4
|
+
*
|
|
5
|
+
* Receives notification that access request was denied.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.DenyAccessHandler = void 0;
|
|
9
|
+
const messages_1 = require("../messages");
|
|
10
|
+
const VaultsEvents_1 = require("../VaultsEvents");
|
|
11
|
+
class DenyAccessHandler {
|
|
12
|
+
constructor(logger, eventEmitter) {
|
|
13
|
+
this.supportedMessages = [messages_1.DenyAccessMessage];
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.eventEmitter = eventEmitter;
|
|
16
|
+
}
|
|
17
|
+
async handle(messageContext) {
|
|
18
|
+
const { agentContext, connection, message } = messageContext;
|
|
19
|
+
this.logger.warn(`Access denied for vault ${message.vaultId}: ${message.reason}`, {
|
|
20
|
+
vaultId: message.vaultId,
|
|
21
|
+
reason: message.reason,
|
|
22
|
+
message: message.message,
|
|
23
|
+
connectionId: connection?.id,
|
|
24
|
+
});
|
|
25
|
+
// Emit event for application
|
|
26
|
+
this.eventEmitter.emit(agentContext, {
|
|
27
|
+
type: VaultsEvents_1.VaultEventTypes.AccessDenied,
|
|
28
|
+
payload: {
|
|
29
|
+
vaultId: message.vaultId,
|
|
30
|
+
docId: message.docId,
|
|
31
|
+
reason: message.reason,
|
|
32
|
+
message: message.message,
|
|
33
|
+
deniedBy: connection?.id,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.DenyAccessHandler = DenyAccessHandler;
|
|
39
|
+
//# sourceMappingURL=DenyAccessHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DenyAccessHandler.js","sourceRoot":"","sources":["../../src/handlers/DenyAccessHandler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAMH,0CAA+C;AAC/C,kDAAiD;AAEjD,MAAa,iBAAiB;IAK5B,YAAmB,MAAc,EAAE,YAA0B;QAFtD,sBAAiB,GAAG,CAAC,4BAAiB,CAAC,CAAA;QAG5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,cAA+D;QACjF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAA;QAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE;YAChF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,UAAU,EAAE,EAAE;SAC7B,CAAC,CAAA;QAEF,6BAA6B;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,8BAAe,CAAC,YAAY;YAClC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,UAAU,EAAE,EAAE;aACzB;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAhCD,8CAgCC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for deny-share messages
|
|
3
|
+
*
|
|
4
|
+
* Receives notification that a share request was denied.
|
|
5
|
+
*/
|
|
6
|
+
import type { MessageHandler, MessageHandlerInboundMessage, Logger } from '@credo-ts/core';
|
|
7
|
+
import { EventEmitter } from '@credo-ts/core';
|
|
8
|
+
import { DenyShareMessage } from '../messages';
|
|
9
|
+
import { ThresholdSessionRepository } from '../repository/ThresholdSessionRepository';
|
|
10
|
+
export declare class DenyShareHandler implements MessageHandler {
|
|
11
|
+
private logger;
|
|
12
|
+
private sessionRepository;
|
|
13
|
+
private eventEmitter;
|
|
14
|
+
supportedMessages: (typeof DenyShareMessage)[];
|
|
15
|
+
constructor(logger: Logger, sessionRepository: ThresholdSessionRepository, eventEmitter: EventEmitter);
|
|
16
|
+
handle(messageContext: MessageHandlerInboundMessage<DenyShareHandler>): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Handler for deny-share messages
|
|
4
|
+
*
|
|
5
|
+
* Receives notification that a share request was denied.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.DenyShareHandler = void 0;
|
|
9
|
+
const messages_1 = require("../messages");
|
|
10
|
+
const VaultsEvents_1 = require("../VaultsEvents");
|
|
11
|
+
class DenyShareHandler {
|
|
12
|
+
constructor(logger, sessionRepository, eventEmitter) {
|
|
13
|
+
this.supportedMessages = [messages_1.DenyShareMessage];
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.sessionRepository = sessionRepository;
|
|
16
|
+
this.eventEmitter = eventEmitter;
|
|
17
|
+
}
|
|
18
|
+
async handle(messageContext) {
|
|
19
|
+
const { agentContext, connection, message } = messageContext;
|
|
20
|
+
this.logger.warn(`Share request denied for session ${message.sessionId}: ${message.reason}`, {
|
|
21
|
+
vaultId: message.vaultId,
|
|
22
|
+
sessionId: message.sessionId,
|
|
23
|
+
reason: message.reason,
|
|
24
|
+
message: message.message,
|
|
25
|
+
connectionId: connection?.id,
|
|
26
|
+
});
|
|
27
|
+
// Update session if it exists - mark as failed if too many denials
|
|
28
|
+
const session = await this.sessionRepository.findBySessionId(agentContext, message.sessionId);
|
|
29
|
+
if (session) {
|
|
30
|
+
// For now, just log the denial. Could track denials and fail session
|
|
31
|
+
// if too many participants deny.
|
|
32
|
+
this.logger.debug(`Share denied for session ${message.sessionId} by ${connection?.id}`);
|
|
33
|
+
}
|
|
34
|
+
// Emit event for application
|
|
35
|
+
this.eventEmitter.emit(agentContext, {
|
|
36
|
+
type: VaultsEvents_1.VaultEventTypes.ShareDenied,
|
|
37
|
+
payload: {
|
|
38
|
+
vaultId: message.vaultId,
|
|
39
|
+
docId: message.docId,
|
|
40
|
+
sessionId: message.sessionId,
|
|
41
|
+
reason: message.reason,
|
|
42
|
+
message: message.message,
|
|
43
|
+
deniedBy: connection?.id,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.DenyShareHandler = DenyShareHandler;
|
|
49
|
+
//# sourceMappingURL=DenyShareHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DenyShareHandler.js","sourceRoot":"","sources":["../../src/handlers/DenyShareHandler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAMH,0CAA8C;AAE9C,kDAAiD;AAEjD,MAAa,gBAAgB;IAM3B,YACE,MAAc,EACd,iBAA6C,EAC7C,YAA0B;QALrB,sBAAiB,GAAG,CAAC,2BAAgB,CAAC,CAAA;QAO3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,cAA8D;QAChF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAA;QAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE;YAC3F,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,UAAU,EAAE,EAAE;SAC7B,CAAC,CAAA;QAEF,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7F,IAAI,OAAO,EAAE,CAAC;YACZ,qEAAqE;YACrE,iCAAiC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,SAAS,OAAO,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,8BAAe,CAAC,WAAW;YACjC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,UAAU,EAAE,EAAE;aACzB;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAhDD,4CAgDC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for grant-access messages
|
|
3
|
+
*
|
|
4
|
+
* Receives CEK wrap granting us access to decrypt a vault.
|
|
5
|
+
*/
|
|
6
|
+
import type { MessageHandler, MessageHandlerInboundMessage, Logger } from '@credo-ts/core';
|
|
7
|
+
import { EventEmitter } from '@credo-ts/core';
|
|
8
|
+
import { GrantAccessMessage } from '../messages';
|
|
9
|
+
import { VaultRepository } from '../repository/VaultRepository';
|
|
10
|
+
export declare class GrantAccessHandler implements MessageHandler {
|
|
11
|
+
private logger;
|
|
12
|
+
private vaultRepository;
|
|
13
|
+
private eventEmitter;
|
|
14
|
+
supportedMessages: (typeof GrantAccessMessage)[];
|
|
15
|
+
constructor(logger: Logger, vaultRepository: VaultRepository, eventEmitter: EventEmitter);
|
|
16
|
+
handle(messageContext: MessageHandlerInboundMessage<GrantAccessHandler>): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Handler for grant-access messages
|
|
4
|
+
*
|
|
5
|
+
* Receives CEK wrap granting us access to decrypt a vault.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.GrantAccessHandler = void 0;
|
|
9
|
+
const messages_1 = require("../messages");
|
|
10
|
+
const VaultsEvents_1 = require("../VaultsEvents");
|
|
11
|
+
class GrantAccessHandler {
|
|
12
|
+
constructor(logger, vaultRepository, eventEmitter) {
|
|
13
|
+
this.supportedMessages = [messages_1.GrantAccessMessage];
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.vaultRepository = vaultRepository;
|
|
16
|
+
this.eventEmitter = eventEmitter;
|
|
17
|
+
}
|
|
18
|
+
async handle(messageContext) {
|
|
19
|
+
const { agentContext, connection, message } = messageContext;
|
|
20
|
+
this.logger.info(`Access granted for vault ${message.vaultId}`, {
|
|
21
|
+
vaultId: message.vaultId,
|
|
22
|
+
wrapMethod: message.wrapMethod,
|
|
23
|
+
expiresAt: message.expiresAt,
|
|
24
|
+
connectionId: connection?.id,
|
|
25
|
+
});
|
|
26
|
+
// Find the vault record
|
|
27
|
+
const vault = await this.vaultRepository.findByVaultId(agentContext, message.vaultId);
|
|
28
|
+
if (vault) {
|
|
29
|
+
// Store the CEK wrap in metadata for later decryption
|
|
30
|
+
vault.header.metadata = {
|
|
31
|
+
...vault.header.metadata,
|
|
32
|
+
accessGranted: {
|
|
33
|
+
cekWrap: message.cekWrap,
|
|
34
|
+
wrapMethod: message.wrapMethod,
|
|
35
|
+
grantedBy: connection?.id,
|
|
36
|
+
grantedAt: new Date().toISOString(),
|
|
37
|
+
expiresAt: message.expiresAt,
|
|
38
|
+
permissions: message.metadata?.permissions,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
await this.vaultRepository.update(agentContext, vault);
|
|
42
|
+
}
|
|
43
|
+
// Emit event for application
|
|
44
|
+
this.eventEmitter.emit(agentContext, {
|
|
45
|
+
type: VaultsEvents_1.VaultEventTypes.AccessGranted,
|
|
46
|
+
payload: {
|
|
47
|
+
vaultId: message.vaultId,
|
|
48
|
+
docId: message.docId,
|
|
49
|
+
cekWrap: message.cekWrap,
|
|
50
|
+
wrapMethod: message.wrapMethod,
|
|
51
|
+
grantedBy: connection?.id,
|
|
52
|
+
expiresAt: message.expiresAt,
|
|
53
|
+
permissions: message.metadata?.permissions,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.GrantAccessHandler = GrantAccessHandler;
|
|
59
|
+
//# sourceMappingURL=GrantAccessHandler.js.map
|