@credo-ts/askar 0.6.1-pr-2091-20241119140918 → 0.6.1

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 (166) hide show
  1. package/build/AskarApi.d.mts +68 -0
  2. package/build/AskarApi.d.mts.map +1 -0
  3. package/build/AskarApi.mjs +94 -0
  4. package/build/AskarApi.mjs.map +1 -0
  5. package/build/AskarApiOptions.d.mts +29 -0
  6. package/build/AskarApiOptions.d.mts.map +1 -0
  7. package/build/AskarModule.d.mts +18 -0
  8. package/build/AskarModule.d.mts.map +1 -0
  9. package/build/AskarModule.mjs +61 -0
  10. package/build/AskarModule.mjs.map +1 -0
  11. package/build/AskarModuleConfig.d.mts +125 -0
  12. package/build/AskarModuleConfig.d.mts.map +1 -0
  13. package/build/AskarModuleConfig.mjs +41 -0
  14. package/build/AskarModuleConfig.mjs.map +1 -0
  15. package/build/AskarStorageConfig.d.mts +32 -0
  16. package/build/AskarStorageConfig.d.mts.map +1 -0
  17. package/build/AskarStorageConfig.mjs +11 -0
  18. package/build/AskarStorageConfig.mjs.map +1 -0
  19. package/build/AskarStoreManager.d.mts +109 -0
  20. package/build/AskarStoreManager.d.mts.map +1 -0
  21. package/build/AskarStoreManager.mjs +386 -0
  22. package/build/AskarStoreManager.mjs.map +1 -0
  23. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
  24. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
  25. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
  26. package/build/error/AskarError.d.mts +1 -0
  27. package/build/error/AskarError.mjs +12 -0
  28. package/build/error/AskarError.mjs.map +1 -0
  29. package/build/error/AskarStoreDuplicateError.d.mts +13 -0
  30. package/build/error/AskarStoreDuplicateError.d.mts.map +1 -0
  31. package/build/error/AskarStoreDuplicateError.mjs +12 -0
  32. package/build/error/AskarStoreDuplicateError.mjs.map +1 -0
  33. package/build/error/AskarStoreError.d.mts +13 -0
  34. package/build/error/AskarStoreError.d.mts.map +1 -0
  35. package/build/error/AskarStoreError.mjs +12 -0
  36. package/build/error/AskarStoreError.mjs.map +1 -0
  37. package/build/error/AskarStoreExportPathExistsError.d.mts +13 -0
  38. package/build/error/AskarStoreExportPathExistsError.d.mts.map +1 -0
  39. package/build/error/AskarStoreExportPathExistsError.mjs +12 -0
  40. package/build/error/AskarStoreExportPathExistsError.mjs.map +1 -0
  41. package/build/error/AskarStoreExportUnsupportedError.d.mts +13 -0
  42. package/build/error/AskarStoreExportUnsupportedError.d.mts.map +1 -0
  43. package/build/error/AskarStoreExportUnsupportedError.mjs +12 -0
  44. package/build/error/AskarStoreExportUnsupportedError.mjs.map +1 -0
  45. package/build/error/AskarStoreImportPathExistsError.d.mts +13 -0
  46. package/build/error/AskarStoreImportPathExistsError.d.mts.map +1 -0
  47. package/build/error/AskarStoreImportPathExistsError.mjs +12 -0
  48. package/build/error/AskarStoreImportPathExistsError.mjs.map +1 -0
  49. package/build/error/AskarStoreInvalidKeyError.d.mts +13 -0
  50. package/build/error/AskarStoreInvalidKeyError.d.mts.map +1 -0
  51. package/build/error/AskarStoreInvalidKeyError.mjs +12 -0
  52. package/build/error/AskarStoreInvalidKeyError.mjs.map +1 -0
  53. package/build/error/AskarStoreNotFoundError.d.mts +13 -0
  54. package/build/error/AskarStoreNotFoundError.d.mts.map +1 -0
  55. package/build/error/AskarStoreNotFoundError.mjs +12 -0
  56. package/build/error/AskarStoreNotFoundError.mjs.map +1 -0
  57. package/build/error/index.d.mts +8 -0
  58. package/build/error/index.mjs +8 -0
  59. package/build/index.d.mts +19 -0
  60. package/build/index.mjs +19 -0
  61. package/build/kms/AskarKeyManagementService.d.mts +30 -0
  62. package/build/kms/AskarKeyManagementService.d.mts.map +1 -0
  63. package/build/kms/AskarKeyManagementService.mjs +415 -0
  64. package/build/kms/AskarKeyManagementService.mjs.map +1 -0
  65. package/build/kms/crypto/decrypt.mjs +21 -0
  66. package/build/kms/crypto/decrypt.mjs.map +1 -0
  67. package/build/kms/crypto/deriveKey.mjs +87 -0
  68. package/build/kms/crypto/deriveKey.mjs.map +1 -0
  69. package/build/kms/crypto/encrypt.mjs +24 -0
  70. package/build/kms/crypto/encrypt.mjs.map +1 -0
  71. package/build/kms/crypto/randomBytes.mjs +19 -0
  72. package/build/kms/crypto/randomBytes.mjs.map +1 -0
  73. package/build/storage/AskarStorageService.d.mts +34 -0
  74. package/build/storage/AskarStorageService.d.mts.map +1 -0
  75. package/build/storage/AskarStorageService.mjs +169 -0
  76. package/build/storage/AskarStorageService.mjs.map +1 -0
  77. package/build/storage/index.d.mts +1 -0
  78. package/build/storage/index.mjs +1 -0
  79. package/build/storage/utils.d.mts +8 -0
  80. package/build/storage/utils.d.mts.map +1 -0
  81. package/build/storage/utils.mjs +58 -0
  82. package/build/storage/utils.mjs.map +1 -0
  83. package/build/tenants.mjs +42 -0
  84. package/build/tenants.mjs.map +1 -0
  85. package/build/utils/askarError.d.mts +1 -0
  86. package/build/utils/askarError.mjs +21 -0
  87. package/build/utils/askarError.mjs.map +1 -0
  88. package/build/utils/askarKeyTypes.d.mts +2 -0
  89. package/build/utils/askarKeyTypes.mjs +25 -0
  90. package/build/utils/askarKeyTypes.mjs.map +1 -0
  91. package/build/utils/askarStoreConfig.d.mts +2 -0
  92. package/build/utils/askarStoreConfig.mjs +47 -0
  93. package/build/utils/askarStoreConfig.mjs.map +1 -0
  94. package/build/utils/index.d.mts +4 -0
  95. package/build/utils/index.mjs +4 -0
  96. package/build/utils/transformPrivateKey.d.mts +73 -0
  97. package/build/utils/transformPrivateKey.d.mts.map +1 -0
  98. package/build/utils/transformPrivateKey.mjs +73 -0
  99. package/build/utils/transformPrivateKey.mjs.map +1 -0
  100. package/package.json +21 -29
  101. package/build/AskarModule.d.ts +0 -9
  102. package/build/AskarModule.js +0 -58
  103. package/build/AskarModule.js.map +0 -1
  104. package/build/AskarModuleConfig.d.ts +0 -68
  105. package/build/AskarModuleConfig.js +0 -33
  106. package/build/AskarModuleConfig.js.map +0 -1
  107. package/build/index.d.ts +0 -4
  108. package/build/index.js +0 -16
  109. package/build/index.js.map +0 -1
  110. package/build/secureEnvironment/index.d.ts +0 -1
  111. package/build/secureEnvironment/index.js +0 -18
  112. package/build/secureEnvironment/index.js.map +0 -1
  113. package/build/secureEnvironment/secureEnvironment.d.ts +0 -5
  114. package/build/secureEnvironment/secureEnvironment.js +0 -7
  115. package/build/secureEnvironment/secureEnvironment.js.map +0 -1
  116. package/build/secureEnvironment/secureEnvironment.native.d.ts +0 -1
  117. package/build/secureEnvironment/secureEnvironment.native.js +0 -14
  118. package/build/secureEnvironment/secureEnvironment.native.js.map +0 -1
  119. package/build/storage/AskarStorageService.d.ts +0 -17
  120. package/build/storage/AskarStorageService.js +0 -141
  121. package/build/storage/AskarStorageService.js.map +0 -1
  122. package/build/storage/index.d.ts +0 -1
  123. package/build/storage/index.js +0 -18
  124. package/build/storage/index.js.map +0 -1
  125. package/build/storage/utils.d.ts +0 -15
  126. package/build/storage/utils.js +0 -109
  127. package/build/storage/utils.js.map +0 -1
  128. package/build/utils/askarError.d.ts +0 -14
  129. package/build/utils/askarError.js +0 -20
  130. package/build/utils/askarError.js.map +0 -1
  131. package/build/utils/askarKeyBackend.d.ts +0 -3
  132. package/build/utils/askarKeyBackend.js +0 -15
  133. package/build/utils/askarKeyBackend.js.map +0 -1
  134. package/build/utils/askarKeyTypes.d.ts +0 -8
  135. package/build/utils/askarKeyTypes.js +0 -46
  136. package/build/utils/askarKeyTypes.js.map +0 -1
  137. package/build/utils/askarWalletConfig.d.ts +0 -14
  138. package/build/utils/askarWalletConfig.js +0 -75
  139. package/build/utils/askarWalletConfig.js.map +0 -1
  140. package/build/utils/assertAskarWallet.d.ts +0 -3
  141. package/build/utils/assertAskarWallet.js +0 -14
  142. package/build/utils/assertAskarWallet.js.map +0 -1
  143. package/build/utils/index.d.ts +0 -3
  144. package/build/utils/index.js +0 -20
  145. package/build/utils/index.js.map +0 -1
  146. package/build/wallet/AskarBaseWallet.d.ts +0 -112
  147. package/build/wallet/AskarBaseWallet.js +0 -540
  148. package/build/wallet/AskarBaseWallet.js.map +0 -1
  149. package/build/wallet/AskarProfileWallet.d.ts +0 -24
  150. package/build/wallet/AskarProfileWallet.js +0 -150
  151. package/build/wallet/AskarProfileWallet.js.map +0 -1
  152. package/build/wallet/AskarWallet.d.ts +0 -58
  153. package/build/wallet/AskarWallet.js +0 -342
  154. package/build/wallet/AskarWallet.js.map +0 -1
  155. package/build/wallet/AskarWalletStorageConfig.d.ts +0 -31
  156. package/build/wallet/AskarWalletStorageConfig.js +0 -11
  157. package/build/wallet/AskarWalletStorageConfig.js.map +0 -1
  158. package/build/wallet/JweEnvelope.d.ts +0 -32
  159. package/build/wallet/JweEnvelope.js +0 -55
  160. package/build/wallet/JweEnvelope.js.map +0 -1
  161. package/build/wallet/didcommV1.d.ts +0 -8
  162. package/build/wallet/didcommV1.js +0 -155
  163. package/build/wallet/didcommV1.js.map +0 -1
  164. package/build/wallet/index.d.ts +0 -3
  165. package/build/wallet/index.js +0 -23
  166. package/build/wallet/index.js.map +0 -1
@@ -1,150 +0,0 @@
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
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AskarProfileWallet = void 0;
16
- const core_1 = require("@credo-ts/core");
17
- const aries_askar_shared_1 = require("@hyperledger/aries-askar-shared");
18
- const tsyringe_1 = require("tsyringe");
19
- const utils_1 = require("../utils");
20
- const AskarBaseWallet_1 = require("./AskarBaseWallet");
21
- let AskarProfileWallet = class AskarProfileWallet extends AskarBaseWallet_1.AskarBaseWallet {
22
- constructor(store, logger, signingKeyProviderRegistry) {
23
- super(logger, signingKeyProviderRegistry);
24
- this.isInitialized = false;
25
- this.store = store;
26
- }
27
- get isProvisioned() {
28
- return this.walletConfig !== undefined;
29
- }
30
- get profile() {
31
- if (!this.walletConfig) {
32
- throw new core_1.WalletError('No profile configured.');
33
- }
34
- return this.walletConfig.id;
35
- }
36
- /**
37
- * Dispose method is called when an agent context is disposed.
38
- */
39
- async dispose() {
40
- if (this.isInitialized) {
41
- await this.close();
42
- }
43
- }
44
- async create(walletConfig) {
45
- this.logger.debug(`Creating wallet for profile '${walletConfig.id}'`);
46
- try {
47
- await this.store.createProfile(walletConfig.id);
48
- }
49
- catch (error) {
50
- if ((0, utils_1.isAskarError)(error, utils_1.AskarErrorCode.Duplicate)) {
51
- const errorMessage = `Wallet for profile '${walletConfig.id}' already exists`;
52
- this.logger.debug(errorMessage);
53
- throw new core_1.WalletDuplicateError(errorMessage, {
54
- walletType: 'AskarProfileWallet',
55
- cause: error,
56
- });
57
- }
58
- const errorMessage = `Error creating wallet for profile '${walletConfig.id}'`;
59
- this.logger.error(errorMessage, {
60
- error,
61
- errorMessage: error.message,
62
- });
63
- throw new core_1.WalletError(errorMessage, { cause: error });
64
- }
65
- this.logger.debug(`Successfully created wallet for profile '${walletConfig.id}'`);
66
- }
67
- async open(walletConfig) {
68
- this.logger.debug(`Opening wallet for profile '${walletConfig.id}'`);
69
- try {
70
- this.walletConfig = walletConfig;
71
- // TODO: what is faster? listProfiles or open and close session?
72
- // I think open/close is more scalable (what if profiles is 10.000.000?)
73
- // We just want to check if the profile exists. Because the wallet initialization logic
74
- // first tries to open, and if it doesn't exist it will create it. So we must check here
75
- // if the profile exists
76
- await this.withSession(() => {
77
- /* no-op */
78
- });
79
- this.isInitialized = true;
80
- }
81
- catch (error) {
82
- // Profile does not exist
83
- if ((0, utils_1.isAskarError)(error, utils_1.AskarErrorCode.NotFound)) {
84
- const errorMessage = `Wallet for profile '${walletConfig.id}' not found`;
85
- this.logger.debug(errorMessage);
86
- throw new core_1.WalletNotFoundError(errorMessage, {
87
- walletType: 'AskarProfileWallet',
88
- cause: error,
89
- });
90
- }
91
- const errorMessage = `Error opening wallet for profile '${walletConfig.id}'`;
92
- this.logger.error(errorMessage, {
93
- error,
94
- errorMessage: error.message,
95
- });
96
- throw new core_1.WalletError(errorMessage, { cause: error });
97
- }
98
- this.logger.debug(`Successfully opened wallet for profile '${walletConfig.id}'`);
99
- }
100
- async createAndOpen(walletConfig) {
101
- await this.create(walletConfig);
102
- await this.open(walletConfig);
103
- }
104
- async delete() {
105
- if (!this.walletConfig) {
106
- throw new core_1.WalletError('Can not delete wallet that does not have wallet config set. Make sure to call create wallet before deleting the wallet');
107
- }
108
- this.logger.info(`Deleting profile '${this.profile}'`);
109
- if (this.isInitialized) {
110
- await this.close();
111
- }
112
- try {
113
- await this.store.removeProfile(this.profile);
114
- }
115
- catch (error) {
116
- const errorMessage = `Error deleting wallet for profile '${this.profile}': ${error.message}`;
117
- this.logger.error(errorMessage, {
118
- error,
119
- errorMessage: error.message,
120
- });
121
- throw new core_1.WalletError(errorMessage, { cause: error });
122
- }
123
- }
124
- async export() {
125
- // This PR should help with this: https://github.com/hyperledger/aries-askar/pull/159
126
- throw new core_1.WalletExportUnsupportedError('Exporting a profile is not supported.');
127
- }
128
- async import() {
129
- // This PR should help with this: https://github.com/hyperledger/aries-askar/pull/159
130
- throw new core_1.WalletError('Importing a profile is not supported.');
131
- }
132
- async rotateKey() {
133
- throw new core_1.WalletError('Rotating a key is not supported for a profile. You can rotate the key on the main askar wallet.');
134
- }
135
- async close() {
136
- var _a;
137
- this.logger.debug(`Closing wallet for profile ${(_a = this.walletConfig) === null || _a === void 0 ? void 0 : _a.id}`);
138
- if (!this.isInitialized) {
139
- throw new core_1.WalletError('Wallet is in invalid state, you are trying to close wallet that is not initialized.');
140
- }
141
- this.isInitialized = false;
142
- }
143
- };
144
- exports.AskarProfileWallet = AskarProfileWallet;
145
- exports.AskarProfileWallet = AskarProfileWallet = __decorate([
146
- (0, tsyringe_1.injectable)(),
147
- __param(1, (0, tsyringe_1.inject)(core_1.InjectionSymbols.Logger)),
148
- __metadata("design:paramtypes", [aries_askar_shared_1.Store, Object, core_1.SigningProviderRegistry])
149
- ], AskarProfileWallet);
150
- //# sourceMappingURL=AskarProfileWallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AskarProfileWallet.js","sourceRoot":"","sources":["../../src/wallet/AskarProfileWallet.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import type { WalletConfig, WalletConfigRekey, WalletExportImportConfig } from '@credo-ts/core';
2
- import { Logger, SigningProviderRegistry, FileSystem } from '@credo-ts/core';
3
- import { Store } from '@hyperledger/aries-askar-shared';
4
- import { AskarBaseWallet } from './AskarBaseWallet';
5
- /**
6
- * @todo: rename after 0.5.0, as we now have multiple types of AskarWallet
7
- */
8
- export declare class AskarWallet extends AskarBaseWallet {
9
- private fileSystem;
10
- private walletConfig?;
11
- private _store?;
12
- constructor(logger: Logger, fileSystem: FileSystem, signingKeyProviderRegistry: SigningProviderRegistry);
13
- get isProvisioned(): boolean;
14
- get isInitialized(): boolean;
15
- get store(): Store;
16
- get profile(): string;
17
- /**
18
- * Dispose method is called when an agent context is disposed.
19
- */
20
- dispose(): Promise<void>;
21
- /**
22
- * @throws {WalletDuplicateError} if the wallet already exists
23
- * @throws {WalletError} if another error occurs
24
- */
25
- create(walletConfig: WalletConfig): Promise<void>;
26
- /**
27
- * @throws {WalletDuplicateError} if the wallet already exists
28
- * @throws {WalletError} if another error occurs
29
- */
30
- createAndOpen(walletConfig: WalletConfig): Promise<void>;
31
- /**
32
- * @throws {WalletNotFoundError} if the wallet does not exist
33
- * @throws {WalletError} if another error occurs
34
- */
35
- open(walletConfig: WalletConfig): Promise<void>;
36
- /**
37
- * @throws {WalletNotFoundError} if the wallet does not exist
38
- * @throws {WalletError} if another error occurs
39
- */
40
- rotateKey(walletConfig: WalletConfigRekey): Promise<void>;
41
- /**
42
- * @throws {WalletNotFoundError} if the wallet does not exist
43
- * @throws {WalletError} if another error occurs
44
- */
45
- private _open;
46
- /**
47
- * @throws {WalletNotFoundError} if the wallet does not exist
48
- * @throws {WalletError} if another error occurs
49
- */
50
- delete(): Promise<void>;
51
- export(exportConfig: WalletExportImportConfig): Promise<void>;
52
- import(walletConfig: WalletConfig, importConfig: WalletExportImportConfig): Promise<void>;
53
- /**
54
- * @throws {WalletError} if the wallet is already closed or another error occurs
55
- */
56
- close(): Promise<void>;
57
- private getAskarWalletConfig;
58
- }
@@ -1,342 +0,0 @@
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
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AskarWallet = void 0;
16
- const core_1 = require("@credo-ts/core");
17
- const aries_askar_shared_1 = require("@hyperledger/aries-askar-shared");
18
- const tsyringe_1 = require("tsyringe");
19
- const utils_1 = require("../utils");
20
- const AskarBaseWallet_1 = require("./AskarBaseWallet");
21
- const AskarWalletStorageConfig_1 = require("./AskarWalletStorageConfig");
22
- /**
23
- * @todo: rename after 0.5.0, as we now have multiple types of AskarWallet
24
- */
25
- let AskarWallet = class AskarWallet extends AskarBaseWallet_1.AskarBaseWallet {
26
- constructor(logger, fileSystem, signingKeyProviderRegistry) {
27
- super(logger, signingKeyProviderRegistry);
28
- this.fileSystem = fileSystem;
29
- }
30
- get isProvisioned() {
31
- return this.walletConfig !== undefined;
32
- }
33
- get isInitialized() {
34
- return this._store !== undefined;
35
- }
36
- get store() {
37
- if (!this._store) {
38
- throw new core_1.CredoError('Wallet has not been initialized yet. Make sure to await agent.initialize() before using the agent.');
39
- }
40
- return this._store;
41
- }
42
- get profile() {
43
- if (!this.walletConfig) {
44
- throw new core_1.WalletError('No profile configured.');
45
- }
46
- return this.walletConfig.id;
47
- }
48
- /**
49
- * Dispose method is called when an agent context is disposed.
50
- */
51
- async dispose() {
52
- if (this.isInitialized) {
53
- await this.close();
54
- }
55
- }
56
- /**
57
- * @throws {WalletDuplicateError} if the wallet already exists
58
- * @throws {WalletError} if another error occurs
59
- */
60
- async create(walletConfig) {
61
- await this.createAndOpen(walletConfig);
62
- await this.close();
63
- }
64
- /**
65
- * @throws {WalletDuplicateError} if the wallet already exists
66
- * @throws {WalletError} if another error occurs
67
- */
68
- async createAndOpen(walletConfig) {
69
- this.logger.debug(`Creating wallet '${walletConfig.id}`);
70
- const askarWalletConfig = await this.getAskarWalletConfig(walletConfig);
71
- // Check if database exists
72
- const { path: filePath } = (0, utils_1.uriFromWalletConfig)(walletConfig, this.fileSystem.dataPath);
73
- if (filePath && (await this.fileSystem.exists(filePath))) {
74
- throw new core_1.WalletDuplicateError(`Wallet '${walletConfig.id}' already exists.`, {
75
- walletType: 'AskarWallet',
76
- });
77
- }
78
- try {
79
- // Make sure path exists before creating the wallet
80
- if (filePath) {
81
- await this.fileSystem.createDirectory(filePath);
82
- }
83
- this._store = await aries_askar_shared_1.Store.provision({
84
- recreate: false,
85
- uri: askarWalletConfig.uri,
86
- profile: askarWalletConfig.profile,
87
- keyMethod: askarWalletConfig.keyMethod,
88
- passKey: askarWalletConfig.passKey,
89
- });
90
- // TODO: Should we do something to check if it exists?
91
- // Like this.withSession()?
92
- this.walletConfig = walletConfig;
93
- }
94
- catch (error) {
95
- // FIXME: Askar should throw a Duplicate error code, but is currently returning Encryption
96
- // And if we provide the very same wallet key, it will open it without any error
97
- if ((0, utils_1.isAskarError)(error) &&
98
- (error.code === utils_1.AskarErrorCode.Encryption || error.code === utils_1.AskarErrorCode.Duplicate)) {
99
- const errorMessage = `Wallet '${walletConfig.id}' already exists`;
100
- this.logger.debug(errorMessage);
101
- throw new core_1.WalletDuplicateError(errorMessage, {
102
- walletType: 'AskarWallet',
103
- cause: error,
104
- });
105
- }
106
- const errorMessage = `Error creating wallet '${walletConfig.id}'`;
107
- this.logger.error(errorMessage, {
108
- error,
109
- errorMessage: error.message,
110
- });
111
- throw new core_1.WalletError(errorMessage, { cause: error });
112
- }
113
- this.logger.debug(`Successfully created wallet '${walletConfig.id}'`);
114
- }
115
- /**
116
- * @throws {WalletNotFoundError} if the wallet does not exist
117
- * @throws {WalletError} if another error occurs
118
- */
119
- async open(walletConfig) {
120
- await this._open(walletConfig);
121
- }
122
- /**
123
- * @throws {WalletNotFoundError} if the wallet does not exist
124
- * @throws {WalletError} if another error occurs
125
- */
126
- async rotateKey(walletConfig) {
127
- if (!walletConfig.rekey) {
128
- throw new core_1.WalletError('Wallet rekey undefined!. Please specify the new wallet key');
129
- }
130
- await this._open({
131
- id: walletConfig.id,
132
- key: walletConfig.key,
133
- keyDerivationMethod: walletConfig.keyDerivationMethod,
134
- }, walletConfig.rekey, walletConfig.rekeyDerivationMethod);
135
- }
136
- /**
137
- * @throws {WalletNotFoundError} if the wallet does not exist
138
- * @throws {WalletError} if another error occurs
139
- */
140
- async _open(walletConfig, rekey, rekeyDerivation) {
141
- var _a;
142
- if (this._store) {
143
- throw new core_1.WalletError('Wallet instance already opened. Close the currently opened wallet before re-opening the wallet');
144
- }
145
- const askarWalletConfig = await this.getAskarWalletConfig(walletConfig);
146
- try {
147
- this._store = await aries_askar_shared_1.Store.open({
148
- uri: askarWalletConfig.uri,
149
- keyMethod: askarWalletConfig.keyMethod,
150
- passKey: askarWalletConfig.passKey,
151
- });
152
- if (rekey) {
153
- await this._store.rekey({
154
- passKey: rekey,
155
- keyMethod: (0, utils_1.keyDerivationMethodToStoreKeyMethod)(rekeyDerivation !== null && rekeyDerivation !== void 0 ? rekeyDerivation : core_1.KeyDerivationMethod.Argon2IMod),
156
- });
157
- }
158
- // TODO: Should we do something to check if it exists?
159
- // Like this.withSession()?
160
- this.walletConfig = walletConfig;
161
- }
162
- catch (error) {
163
- if ((0, utils_1.isAskarError)(error) &&
164
- (error.code === utils_1.AskarErrorCode.NotFound ||
165
- (error.code === utils_1.AskarErrorCode.Backend &&
166
- (0, AskarWalletStorageConfig_1.isAskarWalletSqliteStorageConfig)(walletConfig.storage) &&
167
- ((_a = walletConfig.storage.config) === null || _a === void 0 ? void 0 : _a.inMemory)))) {
168
- const errorMessage = `Wallet '${walletConfig.id}' not found`;
169
- this.logger.debug(errorMessage);
170
- throw new core_1.WalletNotFoundError(errorMessage, {
171
- walletType: 'AskarWallet',
172
- cause: error,
173
- });
174
- }
175
- else if ((0, utils_1.isAskarError)(error) && error.code === utils_1.AskarErrorCode.Encryption) {
176
- const errorMessage = `Incorrect key for wallet '${walletConfig.id}'`;
177
- this.logger.debug(errorMessage);
178
- throw new core_1.WalletInvalidKeyError(errorMessage, {
179
- walletType: 'AskarWallet',
180
- cause: error,
181
- });
182
- }
183
- throw new core_1.WalletError(`Error opening wallet ${walletConfig.id}: ${error.message}`, { cause: error });
184
- }
185
- this.logger.debug(`Wallet '${walletConfig.id}' opened with handle '${this._store.handle.handle}'`);
186
- }
187
- /**
188
- * @throws {WalletNotFoundError} if the wallet does not exist
189
- * @throws {WalletError} if another error occurs
190
- */
191
- async delete() {
192
- if (!this.walletConfig) {
193
- throw new core_1.WalletError('Can not delete wallet that does not have wallet config set. Make sure to call create wallet before deleting the wallet');
194
- }
195
- this.logger.info(`Deleting wallet '${this.walletConfig.id}'`);
196
- if (this._store) {
197
- await this.close();
198
- }
199
- try {
200
- const { uri } = (0, utils_1.uriFromWalletConfig)(this.walletConfig, this.fileSystem.dataPath);
201
- await aries_askar_shared_1.Store.remove(uri);
202
- }
203
- catch (error) {
204
- const errorMessage = `Error deleting wallet '${this.walletConfig.id}': ${error.message}`;
205
- this.logger.error(errorMessage, {
206
- error,
207
- errorMessage: error.message,
208
- });
209
- throw new core_1.WalletError(errorMessage, { cause: error });
210
- }
211
- }
212
- async export(exportConfig) {
213
- var _a;
214
- if (!this.walletConfig) {
215
- throw new core_1.WalletError('Can not export wallet that does not have wallet config set. Make sure to open it before exporting');
216
- }
217
- const { path: destinationPath, key: exportKey } = exportConfig;
218
- const { path: sourcePath } = (0, utils_1.uriFromWalletConfig)(this.walletConfig, this.fileSystem.dataPath);
219
- if ((0, AskarWalletStorageConfig_1.isAskarWalletSqliteStorageConfig)(this.walletConfig.storage) && ((_a = this.walletConfig.storage) === null || _a === void 0 ? void 0 : _a.inMemory)) {
220
- throw new core_1.WalletExportUnsupportedError('Export is not supported for in memory wallet');
221
- }
222
- if (!sourcePath) {
223
- throw new core_1.WalletExportUnsupportedError('Export is only supported for SQLite backend');
224
- }
225
- try {
226
- // Export path already exists
227
- if (await this.fileSystem.exists(destinationPath)) {
228
- throw new core_1.WalletExportPathExistsError(`Unable to create export, wallet export at path '${exportConfig.path}' already exists`);
229
- }
230
- const exportedWalletConfig = await this.getAskarWalletConfig(Object.assign(Object.assign({}, this.walletConfig), { key: exportKey, storage: { type: 'sqlite', config: { path: destinationPath } } }));
231
- // Make sure destination path exists
232
- await this.fileSystem.createDirectory(destinationPath);
233
- await this.store.copyTo({
234
- recreate: false,
235
- uri: exportedWalletConfig.uri,
236
- keyMethod: exportedWalletConfig.keyMethod,
237
- passKey: exportedWalletConfig.passKey,
238
- });
239
- }
240
- catch (error) {
241
- const errorMessage = `Error exporting wallet '${this.walletConfig.id}': ${error.message}`;
242
- this.logger.error(errorMessage, {
243
- error,
244
- errorMessage: error.message,
245
- });
246
- if (error instanceof core_1.WalletExportPathExistsError)
247
- throw error;
248
- throw new core_1.WalletError(errorMessage, { cause: error });
249
- }
250
- }
251
- async import(walletConfig, importConfig) {
252
- const { path: sourcePath, key: importKey } = importConfig;
253
- const { path: destinationPath } = (0, utils_1.uriFromWalletConfig)(walletConfig, this.fileSystem.dataPath);
254
- if (!destinationPath) {
255
- throw new core_1.WalletError('Import is only supported for SQLite backend');
256
- }
257
- let sourceWalletStore = undefined;
258
- try {
259
- const importWalletConfig = await this.getAskarWalletConfig(walletConfig);
260
- // Import path already exists
261
- if (await this.fileSystem.exists(destinationPath)) {
262
- throw new core_1.WalletExportPathExistsError(`Unable to import wallet. Path '${destinationPath}' already exists`);
263
- }
264
- // Make sure destination path exists
265
- await this.fileSystem.createDirectory(destinationPath);
266
- // Open imported wallet and copy to destination
267
- sourceWalletStore = await aries_askar_shared_1.Store.open({
268
- uri: `sqlite://${sourcePath}`,
269
- keyMethod: importWalletConfig.keyMethod,
270
- passKey: importKey,
271
- });
272
- const defaultProfile = await sourceWalletStore.getDefaultProfile();
273
- if (defaultProfile !== importWalletConfig.profile) {
274
- throw new core_1.WalletError(`Trying to import wallet with walletConfig.id ${importWalletConfig.profile}, however the wallet contains a default profile with id ${defaultProfile}. The walletConfig.id MUST match with the default profile. In the future this behavior may be changed. See https://github.com/hyperledger/aries-askar/issues/221 for more information.`);
275
- }
276
- await sourceWalletStore.copyTo({
277
- recreate: false,
278
- uri: importWalletConfig.uri,
279
- keyMethod: importWalletConfig.keyMethod,
280
- passKey: importWalletConfig.passKey,
281
- });
282
- await sourceWalletStore.close();
283
- }
284
- catch (error) {
285
- await (sourceWalletStore === null || sourceWalletStore === void 0 ? void 0 : sourceWalletStore.close());
286
- const errorMessage = `Error importing wallet '${walletConfig.id}': ${error.message}`;
287
- this.logger.error(errorMessage, {
288
- error,
289
- errorMessage: error.message,
290
- });
291
- if (error instanceof core_1.WalletImportPathExistsError)
292
- throw error;
293
- // Cleanup any wallet file we could have created
294
- if (await this.fileSystem.exists(destinationPath)) {
295
- await this.fileSystem.delete(destinationPath);
296
- }
297
- throw new core_1.WalletError(errorMessage, { cause: error });
298
- }
299
- }
300
- /**
301
- * @throws {WalletError} if the wallet is already closed or another error occurs
302
- */
303
- async close() {
304
- var _a;
305
- this.logger.debug(`Closing wallet ${(_a = this.walletConfig) === null || _a === void 0 ? void 0 : _a.id}`);
306
- if (!this._store) {
307
- throw new core_1.WalletError('Wallet is in invalid state, you are trying to close wallet that has no handle.');
308
- }
309
- try {
310
- await this.store.close();
311
- this._store = undefined;
312
- }
313
- catch (error) {
314
- const errorMessage = `Error closing wallet': ${error.message}`;
315
- this.logger.error(errorMessage, {
316
- error,
317
- errorMessage: error.message,
318
- });
319
- throw new core_1.WalletError(errorMessage, { cause: error });
320
- }
321
- }
322
- async getAskarWalletConfig(walletConfig) {
323
- var _a;
324
- const { uri, path } = (0, utils_1.uriFromWalletConfig)(walletConfig, this.fileSystem.dataPath);
325
- return {
326
- uri,
327
- path,
328
- profile: walletConfig.id,
329
- // FIXME: Default derivation method should be set somewhere in either agent config or some constants
330
- keyMethod: (0, utils_1.keyDerivationMethodToStoreKeyMethod)((_a = walletConfig.keyDerivationMethod) !== null && _a !== void 0 ? _a : core_1.KeyDerivationMethod.Argon2IMod),
331
- passKey: walletConfig.key,
332
- };
333
- }
334
- };
335
- exports.AskarWallet = AskarWallet;
336
- exports.AskarWallet = AskarWallet = __decorate([
337
- (0, tsyringe_1.injectable)(),
338
- __param(0, (0, tsyringe_1.inject)(core_1.InjectionSymbols.Logger)),
339
- __param(1, (0, tsyringe_1.inject)(core_1.InjectionSymbols.FileSystem)),
340
- __metadata("design:paramtypes", [Object, Object, core_1.SigningProviderRegistry])
341
- ], AskarWallet);
342
- //# sourceMappingURL=AskarWallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AskarWallet.js","sourceRoot":"","sources":["../../src/wallet/AskarWallet.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { WalletStorageConfig } from '@credo-ts/core';
2
- export interface AskarWalletPostgresConfig {
3
- host: string;
4
- connectTimeout?: number;
5
- idleTimeout?: number;
6
- maxConnections?: number;
7
- minConnections?: number;
8
- }
9
- export interface AskarWalletSqliteConfig {
10
- maxConnections?: number;
11
- minConnections?: number;
12
- inMemory?: boolean;
13
- path?: string;
14
- }
15
- export interface AskarWalletPostgresCredentials {
16
- account: string;
17
- password: string;
18
- adminAccount?: string;
19
- adminPassword?: string;
20
- }
21
- export interface AskarWalletPostgresStorageConfig extends WalletStorageConfig {
22
- type: 'postgres';
23
- config: AskarWalletPostgresConfig;
24
- credentials: AskarWalletPostgresCredentials;
25
- }
26
- export interface AskarWalletSqliteStorageConfig extends WalletStorageConfig {
27
- type: 'sqlite';
28
- config?: AskarWalletSqliteConfig;
29
- }
30
- export declare function isAskarWalletSqliteStorageConfig(config?: WalletStorageConfig): config is AskarWalletSqliteStorageConfig;
31
- export declare function isAskarWalletPostgresStorageConfig(config?: WalletStorageConfig): config is AskarWalletPostgresStorageConfig;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAskarWalletSqliteStorageConfig = isAskarWalletSqliteStorageConfig;
4
- exports.isAskarWalletPostgresStorageConfig = isAskarWalletPostgresStorageConfig;
5
- function isAskarWalletSqliteStorageConfig(config) {
6
- return (config === null || config === void 0 ? void 0 : config.type) === 'sqlite';
7
- }
8
- function isAskarWalletPostgresStorageConfig(config) {
9
- return (config === null || config === void 0 ? void 0 : config.type) === 'postgres';
10
- }
11
- //# sourceMappingURL=AskarWalletStorageConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AskarWalletStorageConfig.js","sourceRoot":"","sources":["../../src/wallet/AskarWalletStorageConfig.ts"],"names":[],"mappings":";;AAoCA,4EAIC;AAED,gFAIC;AAVD,SAAgB,gCAAgC,CAC9C,MAA4B;IAE5B,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,QAAQ,CAAA;AAClC,CAAC;AAED,SAAgB,kCAAkC,CAChD,MAA4B;IAE5B,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,UAAU,CAAA;AACpC,CAAC"}
@@ -1,32 +0,0 @@
1
- export declare class JweRecipient {
2
- encryptedKey: string;
3
- header?: Record<string, string>;
4
- constructor(options: {
5
- encryptedKey: Uint8Array;
6
- header?: Record<string, string>;
7
- });
8
- }
9
- export interface JweEnvelopeOptions {
10
- protected: string;
11
- unprotected?: string;
12
- recipients?: JweRecipient[];
13
- ciphertext: string;
14
- iv: string;
15
- tag: string;
16
- aad?: string;
17
- header?: string[];
18
- encryptedKey?: string;
19
- }
20
- export declare class JweEnvelope {
21
- protected: string;
22
- unprotected?: string;
23
- recipients?: JweRecipient[];
24
- ciphertext: string;
25
- iv: string;
26
- tag: string;
27
- aad?: string;
28
- header?: string[];
29
- encryptedKey?: string;
30
- constructor(options: JweEnvelopeOptions);
31
- toJson(): Record<string, any>;
32
- }