@decaf-ts/for-fabric 0.0.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/LICENSE.md +22 -0
- package/README.md +647 -0
- package/dist/for-fabric.cjs +6223 -0
- package/dist/for-fabric.esm.cjs +6180 -0
- package/lib/client/FabricClientAdapter.cjs +760 -0
- package/lib/client/FabricClientAdapter.d.ts +381 -0
- package/lib/client/FabricClientDispatch.cjs +186 -0
- package/lib/client/FabricClientDispatch.d.ts +125 -0
- package/lib/client/FabricClientRepository.cjs +131 -0
- package/lib/client/FabricClientRepository.d.ts +100 -0
- package/lib/client/erc20/erc20ClientRepository.cjs +343 -0
- package/lib/client/erc20/erc20ClientRepository.d.ts +254 -0
- package/lib/client/fabric-fs.cjs +234 -0
- package/lib/client/fabric-fs.d.ts +92 -0
- package/lib/client/index.cjs +30 -0
- package/lib/client/index.d.ts +13 -0
- package/lib/client/logging.cjs +102 -0
- package/lib/client/logging.d.ts +60 -0
- package/lib/client/services/LoggedService.cjs +47 -0
- package/lib/client/services/LoggedService.d.ts +42 -0
- package/lib/client/services/constants.cjs +3 -0
- package/lib/client/services/constants.d.ts +15 -0
- package/lib/client/services/enrollementService.cjs +344 -0
- package/lib/client/services/enrollementService.d.ts +176 -0
- package/lib/client/services/index.cjs +18 -0
- package/lib/client/services/index.d.ts +1 -0
- package/lib/contracts/ContractAdapter.cjs +730 -0
- package/lib/contracts/ContractAdapter.d.ts +296 -0
- package/lib/contracts/ContractContext.cjs +85 -0
- package/lib/contracts/ContractContext.d.ts +64 -0
- package/lib/contracts/ContractPrivateDataAdapter.cjs +281 -0
- package/lib/contracts/ContractPrivateDataAdapter.d.ts +74 -0
- package/lib/contracts/FabricConstruction.cjs +441 -0
- package/lib/contracts/FabricConstruction.d.ts +304 -0
- package/lib/contracts/FabricContractRepository.cjs +306 -0
- package/lib/contracts/FabricContractRepository.d.ts +162 -0
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +85 -0
- package/lib/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
- package/lib/contracts/FabricContractSequence.cjs +139 -0
- package/lib/contracts/FabricContractSequence.d.ts +61 -0
- package/lib/contracts/FabricContractStatement.cjs +119 -0
- package/lib/contracts/FabricContractStatement.d.ts +34 -0
- package/lib/contracts/PrivateSequence.cjs +36 -0
- package/lib/contracts/PrivateSequence.d.ts +15 -0
- package/lib/contracts/crud/crud-contract.cjs +257 -0
- package/lib/contracts/crud/crud-contract.d.ts +168 -0
- package/lib/contracts/crud/index.cjs +19 -0
- package/lib/contracts/crud/index.d.ts +2 -0
- package/lib/contracts/crud/serialized-crud-contract.cjs +172 -0
- package/lib/contracts/crud/serialized-crud-contract.d.ts +37 -0
- package/lib/contracts/erc20/erc20contract.cjs +569 -0
- package/lib/contracts/erc20/erc20contract.d.ts +151 -0
- package/lib/contracts/erc20/index.cjs +21 -0
- package/lib/contracts/erc20/index.d.ts +2 -0
- package/lib/contracts/erc20/models.cjs +209 -0
- package/lib/contracts/erc20/models.d.ts +114 -0
- package/lib/contracts/index.cjs +32 -0
- package/lib/contracts/index.d.ts +15 -0
- package/lib/contracts/logging.cjs +96 -0
- package/lib/contracts/logging.d.ts +49 -0
- package/lib/contracts/private-data.cjs +121 -0
- package/lib/contracts/private-data.d.ts +16 -0
- package/lib/contracts/types.cjs +3 -0
- package/lib/contracts/types.d.ts +26 -0
- package/lib/esm/client/FabricClientAdapter.d.ts +381 -0
- package/lib/esm/client/FabricClientAdapter.js +723 -0
- package/lib/esm/client/FabricClientDispatch.d.ts +125 -0
- package/lib/esm/client/FabricClientDispatch.js +182 -0
- package/lib/esm/client/FabricClientRepository.d.ts +100 -0
- package/lib/esm/client/FabricClientRepository.js +127 -0
- package/lib/esm/client/erc20/erc20ClientRepository.d.ts +254 -0
- package/lib/esm/client/erc20/erc20ClientRepository.js +339 -0
- package/lib/esm/client/fabric-fs.d.ts +92 -0
- package/lib/esm/client/fabric-fs.js +191 -0
- package/lib/esm/client/index.d.ts +13 -0
- package/lib/esm/client/index.js +14 -0
- package/lib/esm/client/logging.d.ts +60 -0
- package/lib/esm/client/logging.js +98 -0
- package/lib/esm/client/services/LoggedService.d.ts +42 -0
- package/lib/esm/client/services/LoggedService.js +43 -0
- package/lib/esm/client/services/constants.d.ts +15 -0
- package/lib/esm/client/services/constants.js +2 -0
- package/lib/esm/client/services/enrollementService.d.ts +176 -0
- package/lib/esm/client/services/enrollementService.js +337 -0
- package/lib/esm/client/services/index.d.ts +1 -0
- package/lib/esm/client/services/index.js +2 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +296 -0
- package/lib/esm/contracts/ContractAdapter.js +724 -0
- package/lib/esm/contracts/ContractContext.d.ts +64 -0
- package/lib/esm/contracts/ContractContext.js +81 -0
- package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +74 -0
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +277 -0
- package/lib/esm/contracts/FabricConstruction.d.ts +304 -0
- package/lib/esm/contracts/FabricConstruction.js +433 -0
- package/lib/esm/contracts/FabricContractRepository.d.ts +162 -0
- package/lib/esm/contracts/FabricContractRepository.js +302 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +81 -0
- package/lib/esm/contracts/FabricContractSequence.d.ts +61 -0
- package/lib/esm/contracts/FabricContractSequence.js +135 -0
- package/lib/esm/contracts/FabricContractStatement.d.ts +34 -0
- package/lib/esm/contracts/FabricContractStatement.js +115 -0
- package/lib/esm/contracts/PrivateSequence.d.ts +15 -0
- package/lib/esm/contracts/PrivateSequence.js +33 -0
- package/lib/esm/contracts/crud/crud-contract.d.ts +168 -0
- package/lib/esm/contracts/crud/crud-contract.js +253 -0
- package/lib/esm/contracts/crud/index.d.ts +2 -0
- package/lib/esm/contracts/crud/index.js +3 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +37 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +168 -0
- package/lib/esm/contracts/erc20/erc20contract.d.ts +151 -0
- package/lib/esm/contracts/erc20/erc20contract.js +565 -0
- package/lib/esm/contracts/erc20/index.d.ts +2 -0
- package/lib/esm/contracts/erc20/index.js +4 -0
- package/lib/esm/contracts/erc20/models.d.ts +114 -0
- package/lib/esm/contracts/erc20/models.js +206 -0
- package/lib/esm/contracts/index.d.ts +15 -0
- package/lib/esm/contracts/index.js +16 -0
- package/lib/esm/contracts/logging.d.ts +49 -0
- package/lib/esm/contracts/logging.js +92 -0
- package/lib/esm/contracts/private-data.d.ts +16 -0
- package/lib/esm/contracts/private-data.js +113 -0
- package/lib/esm/contracts/types.d.ts +26 -0
- package/lib/esm/contracts/types.js +2 -0
- package/lib/esm/index.d.ts +8 -0
- package/lib/esm/index.js +9 -0
- package/lib/esm/shared/ClientSerializer.d.ts +52 -0
- package/lib/esm/shared/ClientSerializer.js +80 -0
- package/lib/esm/shared/DeterministicSerializer.d.ts +40 -0
- package/lib/esm/shared/DeterministicSerializer.js +50 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.d.ts +7 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +42 -0
- package/lib/esm/shared/constants.d.ts +39 -0
- package/lib/esm/shared/constants.js +42 -0
- package/lib/esm/shared/crypto.d.ts +107 -0
- package/lib/esm/shared/crypto.js +331 -0
- package/lib/esm/shared/decorators.d.ts +24 -0
- package/lib/esm/shared/decorators.js +98 -0
- package/lib/esm/shared/erc20/erc20-constants.d.ts +25 -0
- package/lib/esm/shared/erc20/erc20-constants.js +27 -0
- package/lib/esm/shared/errors.d.ts +116 -0
- package/lib/esm/shared/errors.js +132 -0
- package/lib/esm/shared/events.d.ts +39 -0
- package/lib/esm/shared/events.js +47 -0
- package/lib/esm/shared/fabric-types.d.ts +33 -0
- package/lib/esm/shared/fabric-types.js +2 -0
- package/lib/esm/shared/index.d.ts +13 -0
- package/lib/esm/shared/index.js +14 -0
- package/lib/esm/shared/interfaces/Checkable.d.ts +21 -0
- package/lib/esm/shared/interfaces/Checkable.js +2 -0
- package/lib/esm/shared/math.d.ts +34 -0
- package/lib/esm/shared/math.js +61 -0
- package/lib/esm/shared/model/Identity.d.ts +42 -0
- package/lib/esm/shared/model/Identity.js +78 -0
- package/lib/esm/shared/model/IdentityCredentials.d.ts +41 -0
- package/lib/esm/shared/model/IdentityCredentials.js +74 -0
- package/lib/esm/shared/model/index.d.ts +1 -0
- package/lib/esm/shared/model/index.js +2 -0
- package/lib/esm/shared/model/utils.d.ts +60 -0
- package/lib/esm/shared/model/utils.js +108 -0
- package/lib/esm/shared/types.d.ts +79 -0
- package/lib/esm/shared/types.js +2 -0
- package/lib/esm/shared/utils.d.ts +55 -0
- package/lib/esm/shared/utils.js +148 -0
- package/lib/index.cjs +25 -0
- package/lib/index.d.ts +8 -0
- package/lib/shared/ClientSerializer.cjs +84 -0
- package/lib/shared/ClientSerializer.d.ts +52 -0
- package/lib/shared/DeterministicSerializer.cjs +54 -0
- package/lib/shared/DeterministicSerializer.d.ts +40 -0
- package/lib/shared/SimpleDeterministicSerializer.cjs +46 -0
- package/lib/shared/SimpleDeterministicSerializer.d.ts +7 -0
- package/lib/shared/constants.cjs +45 -0
- package/lib/shared/constants.d.ts +39 -0
- package/lib/shared/crypto.cjs +369 -0
- package/lib/shared/crypto.d.ts +107 -0
- package/lib/shared/decorators.cjs +105 -0
- package/lib/shared/decorators.d.ts +24 -0
- package/lib/shared/erc20/erc20-constants.cjs +30 -0
- package/lib/shared/erc20/erc20-constants.d.ts +25 -0
- package/lib/shared/errors.cjs +142 -0
- package/lib/shared/errors.d.ts +116 -0
- package/lib/shared/events.cjs +51 -0
- package/lib/shared/events.d.ts +39 -0
- package/lib/shared/fabric-types.cjs +4 -0
- package/lib/shared/fabric-types.d.ts +33 -0
- package/lib/shared/index.cjs +30 -0
- package/lib/shared/index.d.ts +13 -0
- package/lib/shared/interfaces/Checkable.cjs +3 -0
- package/lib/shared/interfaces/Checkable.d.ts +21 -0
- package/lib/shared/math.cjs +66 -0
- package/lib/shared/math.d.ts +34 -0
- package/lib/shared/model/Identity.cjs +81 -0
- package/lib/shared/model/Identity.d.ts +42 -0
- package/lib/shared/model/IdentityCredentials.cjs +77 -0
- package/lib/shared/model/IdentityCredentials.d.ts +41 -0
- package/lib/shared/model/index.cjs +18 -0
- package/lib/shared/model/index.d.ts +1 -0
- package/lib/shared/model/utils.cjs +114 -0
- package/lib/shared/model/utils.d.ts +60 -0
- package/lib/shared/types.cjs +3 -0
- package/lib/shared/types.d.ts +79 -0
- package/lib/shared/utils.cjs +185 -0
- package/lib/shared/utils.d.ts +55 -0
- package/package.json +166 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing the events emitted by an ERC20 contract.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This enum is used to identify the specific events that can be emitted by an ERC20 contract.
|
|
6
|
+
* The events are named according to the EIP-20 standard.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ERC20Events {
|
|
9
|
+
/**
|
|
10
|
+
* Emitted when a `transfer` function is called successfully.
|
|
11
|
+
*
|
|
12
|
+
* @param from - The address of the sender.
|
|
13
|
+
* @param to - The address of the recipient.
|
|
14
|
+
* @param value - The amount of tokens transferred.
|
|
15
|
+
*/
|
|
16
|
+
TRANSFER = " Transfer",
|
|
17
|
+
/**
|
|
18
|
+
* Emitted when an `approve` function is called successfully.
|
|
19
|
+
*
|
|
20
|
+
* @param owner - The address of the token owner.
|
|
21
|
+
* @param spender - The address of the approved spender.
|
|
22
|
+
* @param value - The amount of tokens approved for the spender.
|
|
23
|
+
*/
|
|
24
|
+
APPROVAL = "Approval"
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing the events emitted by an ERC20 contract.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This enum is used to identify the specific events that can be emitted by an ERC20 contract.
|
|
6
|
+
* The events are named according to the EIP-20 standard.
|
|
7
|
+
*/
|
|
8
|
+
export var ERC20Events;
|
|
9
|
+
(function (ERC20Events) {
|
|
10
|
+
/**
|
|
11
|
+
* Emitted when a `transfer` function is called successfully.
|
|
12
|
+
*
|
|
13
|
+
* @param from - The address of the sender.
|
|
14
|
+
* @param to - The address of the recipient.
|
|
15
|
+
* @param value - The amount of tokens transferred.
|
|
16
|
+
*/
|
|
17
|
+
ERC20Events["TRANSFER"] = " Transfer";
|
|
18
|
+
/**
|
|
19
|
+
* Emitted when an `approve` function is called successfully.
|
|
20
|
+
*
|
|
21
|
+
* @param owner - The address of the token owner.
|
|
22
|
+
* @param spender - The address of the approved spender.
|
|
23
|
+
* @param value - The amount of tokens approved for the spender.
|
|
24
|
+
*/
|
|
25
|
+
ERC20Events["APPROVAL"] = "Approval";
|
|
26
|
+
})(ERC20Events || (ERC20Events = {}));
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFOLElBQVksV0FrQlg7QUFsQkQsV0FBWSxXQUFXO0lBQ3JCOzs7Ozs7T0FNRztJQUNILHFDQUFzQixDQUFBO0lBRXRCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFsQlcsV0FBVyxLQUFYLFdBQVcsUUFrQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgZW51bSBFUkMyMEV2ZW50cyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBgdHJhbnNmZXJgIGZ1bmN0aW9uIGlzIGNhbGxlZCBzdWNjZXNzZnVsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdHJhbnNmZXJyZWQuXG4gICAqL1xuICBUUkFOU0ZFUiA9IFwiIFRyYW5zZmVyXCIsXG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBgYXBwcm92ZWAgZnVuY3Rpb24gaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseS5cbiAgICpcbiAgICogQHBhcmFtIG93bmVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHRva2VuIG93bmVyLlxuICAgKiBAcGFyYW0gc3BlbmRlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBhcHByb3ZlZCBzcGVuZGVyLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgYW1vdW50IG9mIHRva2VucyBhcHByb3ZlZCBmb3IgdGhlIHNwZW5kZXIuXG4gICAqL1xuICBBUFBST1ZBTCA9IFwiQXBwcm92YWxcIixcbn1cbiJdfQ==
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { BaseError, InternalError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { AuthorizationError } from "@decaf-ts/core";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Represents an overflow error in arithmetic operations in Smart Contracts
|
|
5
|
+
*
|
|
6
|
+
* @param {string} msg the error message
|
|
7
|
+
*
|
|
8
|
+
* @class OverflowError
|
|
9
|
+
* @extends InternalError
|
|
10
|
+
*
|
|
11
|
+
* @category Errors
|
|
12
|
+
*/
|
|
13
|
+
export declare class OverflowError extends InternalError {
|
|
14
|
+
constructor(msg: string | Error);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @summary Represents a failure in balance to perform a transaction in Smart Contracts
|
|
18
|
+
*
|
|
19
|
+
* @param {string} msg the error message
|
|
20
|
+
*
|
|
21
|
+
* @class BalanceError
|
|
22
|
+
* @extends InternalError
|
|
23
|
+
*
|
|
24
|
+
* @category Errors
|
|
25
|
+
*/
|
|
26
|
+
export declare class BalanceError extends InternalError {
|
|
27
|
+
constructor(msg: string | Error);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @summary Represents a failure in balance to perform a transaction in Smart Contracts
|
|
31
|
+
*
|
|
32
|
+
* @param {string} msg the error message
|
|
33
|
+
*
|
|
34
|
+
* @class BalanceError
|
|
35
|
+
* @extends InternalError
|
|
36
|
+
*
|
|
37
|
+
* @category Errors
|
|
38
|
+
*/
|
|
39
|
+
export declare class AllowanceError extends InternalError {
|
|
40
|
+
constructor(msg: string | Error);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @summary Represents a failure registrating new entities
|
|
44
|
+
*
|
|
45
|
+
* @param {string} msg the error message
|
|
46
|
+
*
|
|
47
|
+
* @class RegistrationError
|
|
48
|
+
*
|
|
49
|
+
* @categort Errors
|
|
50
|
+
*/
|
|
51
|
+
export declare class RegistrationError extends AuthorizationError {
|
|
52
|
+
constructor(msg: string | Error);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description Error thrown when an unsupported operation is attempted
|
|
56
|
+
* @summary This error is thrown when an operation is requested that is not supported by the current
|
|
57
|
+
* persistence adapter or configuration. It extends the BaseError class and sets a 500 status code.
|
|
58
|
+
* @param {string|Error} msg - The error message or an Error object to wrap
|
|
59
|
+
* @class UnsupportedError
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* // Throwing an UnsupportedError
|
|
63
|
+
* if (!adapter.supportsTransactions()) {
|
|
64
|
+
* throw new UnsupportedError('Transactions are not supported by this adapter');
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* // Catching an UnsupportedError
|
|
68
|
+
* try {
|
|
69
|
+
* await adapter.beginTransaction();
|
|
70
|
+
* } catch (error) {
|
|
71
|
+
* if (error instanceof UnsupportedError) {
|
|
72
|
+
* console.error('Operation not supported:', error.message);
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @category Errors
|
|
78
|
+
*/
|
|
79
|
+
export declare class MissingContextError extends InternalError {
|
|
80
|
+
constructor(msg: string | Error);
|
|
81
|
+
}
|
|
82
|
+
export declare class UnauthorizedPrivateDataAccess extends BaseError {
|
|
83
|
+
constructor(msg?: string | Error);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Represents an error that occurs when a required initialization step is not performed.
|
|
87
|
+
*
|
|
88
|
+
* @class NotInitializedError
|
|
89
|
+
* @extends BaseError
|
|
90
|
+
*
|
|
91
|
+
* @category Errors
|
|
92
|
+
*
|
|
93
|
+
* @param {string | Error} msg - The error message or an Error object to wrap.
|
|
94
|
+
*
|
|
95
|
+
* @throws {NotInitializedError} - Throws an error when a required initialization step is not performed.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* // Initialize the application
|
|
100
|
+
* if (!isInitialized) {
|
|
101
|
+
* throw new NotInitializedError('Application is not initialized');
|
|
102
|
+
* }
|
|
103
|
+
*
|
|
104
|
+
* // Catching an NotInitializedError
|
|
105
|
+
* try {
|
|
106
|
+
* // Perform operations that require initialization
|
|
107
|
+
* } catch (error) {
|
|
108
|
+
* if (error instanceof NotInitializedError) {
|
|
109
|
+
* console.error('Initialization error:', error.message);
|
|
110
|
+
* }
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare class NotInitializedError extends BaseError {
|
|
115
|
+
constructor(msg: string | Error);
|
|
116
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { BaseError, InternalError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { AuthorizationError } from "@decaf-ts/core";
|
|
3
|
+
import { MISSING_PRIVATE_DATA_ERROR_MESSAGE } from "./../contracts/private-data.js";
|
|
4
|
+
/**
|
|
5
|
+
* @summary Represents an overflow error in arithmetic operations in Smart Contracts
|
|
6
|
+
*
|
|
7
|
+
* @param {string} msg the error message
|
|
8
|
+
*
|
|
9
|
+
* @class OverflowError
|
|
10
|
+
* @extends InternalError
|
|
11
|
+
*
|
|
12
|
+
* @category Errors
|
|
13
|
+
*/
|
|
14
|
+
export class OverflowError extends InternalError {
|
|
15
|
+
constructor(msg) {
|
|
16
|
+
super(msg, OverflowError.name);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @summary Represents a failure in balance to perform a transaction in Smart Contracts
|
|
21
|
+
*
|
|
22
|
+
* @param {string} msg the error message
|
|
23
|
+
*
|
|
24
|
+
* @class BalanceError
|
|
25
|
+
* @extends InternalError
|
|
26
|
+
*
|
|
27
|
+
* @category Errors
|
|
28
|
+
*/
|
|
29
|
+
export class BalanceError extends InternalError {
|
|
30
|
+
constructor(msg) {
|
|
31
|
+
super(msg, BalanceError.name);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @summary Represents a failure in balance to perform a transaction in Smart Contracts
|
|
36
|
+
*
|
|
37
|
+
* @param {string} msg the error message
|
|
38
|
+
*
|
|
39
|
+
* @class BalanceError
|
|
40
|
+
* @extends InternalError
|
|
41
|
+
*
|
|
42
|
+
* @category Errors
|
|
43
|
+
*/
|
|
44
|
+
export class AllowanceError extends InternalError {
|
|
45
|
+
constructor(msg) {
|
|
46
|
+
super(msg, AllowanceError.name);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @summary Represents a failure registrating new entities
|
|
51
|
+
*
|
|
52
|
+
* @param {string} msg the error message
|
|
53
|
+
*
|
|
54
|
+
* @class RegistrationError
|
|
55
|
+
*
|
|
56
|
+
* @categort Errors
|
|
57
|
+
*/
|
|
58
|
+
export class RegistrationError extends AuthorizationError {
|
|
59
|
+
constructor(msg) {
|
|
60
|
+
super(msg, RegistrationError.name);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description Error thrown when an unsupported operation is attempted
|
|
65
|
+
* @summary This error is thrown when an operation is requested that is not supported by the current
|
|
66
|
+
* persistence adapter or configuration. It extends the BaseError class and sets a 500 status code.
|
|
67
|
+
* @param {string|Error} msg - The error message or an Error object to wrap
|
|
68
|
+
* @class UnsupportedError
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // Throwing an UnsupportedError
|
|
72
|
+
* if (!adapter.supportsTransactions()) {
|
|
73
|
+
* throw new UnsupportedError('Transactions are not supported by this adapter');
|
|
74
|
+
* }
|
|
75
|
+
*
|
|
76
|
+
* // Catching an UnsupportedError
|
|
77
|
+
* try {
|
|
78
|
+
* await adapter.beginTransaction();
|
|
79
|
+
* } catch (error) {
|
|
80
|
+
* if (error instanceof UnsupportedError) {
|
|
81
|
+
* console.error('Operation not supported:', error.message);
|
|
82
|
+
* }
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @category Errors
|
|
87
|
+
*/
|
|
88
|
+
export class MissingContextError extends InternalError {
|
|
89
|
+
constructor(msg) {
|
|
90
|
+
super(msg, MissingContextError.name, 500);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export class UnauthorizedPrivateDataAccess extends BaseError {
|
|
94
|
+
constructor(msg = MISSING_PRIVATE_DATA_ERROR_MESSAGE) {
|
|
95
|
+
super(UnauthorizedPrivateDataAccess.name, msg, 403);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Represents an error that occurs when a required initialization step is not performed.
|
|
100
|
+
*
|
|
101
|
+
* @class NotInitializedError
|
|
102
|
+
* @extends BaseError
|
|
103
|
+
*
|
|
104
|
+
* @category Errors
|
|
105
|
+
*
|
|
106
|
+
* @param {string | Error} msg - The error message or an Error object to wrap.
|
|
107
|
+
*
|
|
108
|
+
* @throws {NotInitializedError} - Throws an error when a required initialization step is not performed.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* // Initialize the application
|
|
113
|
+
* if (!isInitialized) {
|
|
114
|
+
* throw new NotInitializedError('Application is not initialized');
|
|
115
|
+
* }
|
|
116
|
+
*
|
|
117
|
+
* // Catching an NotInitializedError
|
|
118
|
+
* try {
|
|
119
|
+
* // Perform operations that require initialization
|
|
120
|
+
* } catch (error) {
|
|
121
|
+
* if (error instanceof NotInitializedError) {
|
|
122
|
+
* console.error('Initialization error:', error.message);
|
|
123
|
+
* }
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export class NotInitializedError extends BaseError {
|
|
128
|
+
constructor(msg) {
|
|
129
|
+
super(NotInitializedError.name, msg, 409);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsdUNBQWtDO0FBQy9FOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQUM5QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUM3QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQUMvQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQUN2RCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBQ3BELFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFNBQVM7SUFDMUQsWUFBWSxNQUFzQixrQ0FBa0M7UUFDbEUsS0FBSyxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQUNoRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciwgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNSVNTSU5HX1BSSVZBVEVfREFUQV9FUlJPUl9NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9wcml2YXRlLWRhdGFcIjtcbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhbiBvdmVyZmxvdyBlcnJvciBpbiBhcml0aG1ldGljIG9wZXJhdGlvbnMgaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBPdmVyZmxvd0Vycm9yXG4gKiBAZXh0ZW5kcyBJbnRlcm5hbEVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBPdmVyZmxvd0Vycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWxhbmNlRXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgQmFsYW5jZUVycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGxvd2FuY2VFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBBbGxvd2FuY2VFcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIHJlZ2lzdHJhdGluZyBuZXcgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIFJlZ2lzdHJhdGlvbkVycm9yXG4gKlxuICogQGNhdGVnb3J0IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgUmVnaXN0cmF0aW9uRXJyb3IgZXh0ZW5kcyBBdXRob3JpemF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBSZWdpc3RyYXRpb25FcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gd2hlbiBhbiB1bnN1cHBvcnRlZCBvcGVyYXRpb24gaXMgYXR0ZW1wdGVkXG4gKiBAc3VtbWFyeSBUaGlzIGVycm9yIGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyByZXF1ZXN0ZWQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50XG4gKiBwZXJzaXN0ZW5jZSBhZGFwdGVyIG9yIGNvbmZpZ3VyYXRpb24uIEl0IGV4dGVuZHMgdGhlIEJhc2VFcnJvciBjbGFzcyBhbmQgc2V0cyBhIDUwMCBzdGF0dXMgY29kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBhbiBFcnJvciBvYmplY3QgdG8gd3JhcFxuICogQGNsYXNzIFVuc3VwcG9ydGVkRXJyb3JcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBUaHJvd2luZyBhbiBVbnN1cHBvcnRlZEVycm9yXG4gKiBpZiAoIWFkYXB0ZXIuc3VwcG9ydHNUcmFuc2FjdGlvbnMoKSkge1xuICogICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcignVHJhbnNhY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYWRhcHRlcicpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIFVuc3VwcG9ydGVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIGF3YWl0IGFkYXB0ZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRFcnJvcikge1xuICogICAgIGNvbnNvbGUuZXJyb3IoJ09wZXJhdGlvbiBub3Qgc3VwcG9ydGVkOicsIGVycm9yLm1lc3NhZ2UpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzaW5nQ29udGV4dEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIE1pc3NpbmdDb250ZXh0RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yID0gTUlTU0lOR19QUklWQVRFX0RBVEFfRVJST1JfTUVTU0FHRSkge1xuICAgIHN1cGVyKFVuYXV0aG9yaXplZFByaXZhdGVEYXRhQWNjZXNzLm5hbWUsIG1zZywgNDAzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3IgdGhhdCBvY2N1cnMgd2hlbiBhIHJlcXVpcmVkIGluaXRpYWxpemF0aW9uIHN0ZXAgaXMgbm90IHBlcmZvcm1lZC5cbiAqXG4gKiBAY2xhc3MgTm90SW5pdGlhbGl6ZWRFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgRXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIGFuIEVycm9yIG9iamVjdCB0byB3cmFwLlxuICpcbiAqIEB0aHJvd3Mge05vdEluaXRpYWxpemVkRXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIHdoZW4gYSByZXF1aXJlZCBpbml0aWFsaXphdGlvbiBzdGVwIGlzIG5vdCBwZXJmb3JtZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uXG4gKiBpZiAoIWlzSW5pdGlhbGl6ZWQpIHtcbiAqICAgdGhyb3cgbmV3IE5vdEluaXRpYWxpemVkRXJyb3IoJ0FwcGxpY2F0aW9uIGlzIG5vdCBpbml0aWFsaXplZCcpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIE5vdEluaXRpYWxpemVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIC8vIFBlcmZvcm0gb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgaW5pdGlhbGl6YXRpb25cbiAqIH0gY2F0Y2ggKGVycm9yKSB7XG4gKiAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE5vdEluaXRpYWxpemVkRXJyb3IpIHtcbiAqICAgICBjb25zb2xlLmVycm9yKCdJbml0aWFsaXphdGlvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbml0aWFsaXplZEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKE5vdEluaXRpYWxpemVkRXJyb3IubmFtZSwgbXNnLCA0MDkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
2
|
+
/**
|
|
3
|
+
* @description Generates a Fabric event name from components
|
|
4
|
+
* @summary Creates a standardized event name by joining table, event, and optional owner with underscores
|
|
5
|
+
* @param {string} table - The table/collection name
|
|
6
|
+
* @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
|
|
7
|
+
* @param {string} [owner] - Optional owner identifier
|
|
8
|
+
* @return {string} The generated event name in format "table_event" or "table_event_owner"
|
|
9
|
+
* @function generateFabricEventName
|
|
10
|
+
* @memberOf module:for-fabric.shared
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateFabricEventName(table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner?: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* @description Parses a Fabric event name into its components
|
|
15
|
+
* @summary Splits an event name by underscores and extracts table, event, and optional owner
|
|
16
|
+
* @param {string} name - The event name to parse
|
|
17
|
+
* @return {{table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner: string}} The parsed components as a structured object
|
|
18
|
+
* @throws {InternalError} If the event name format is invalid
|
|
19
|
+
* @function parseEventName
|
|
20
|
+
* @mermaid
|
|
21
|
+
* sequenceDiagram
|
|
22
|
+
* participant Caller
|
|
23
|
+
* participant Parser as parseEventName
|
|
24
|
+
* Caller->>Parser: parseEventName(name)
|
|
25
|
+
* Parser->>Parser: split name by "_"
|
|
26
|
+
* alt parts length invalid
|
|
27
|
+
* Parser-->>Caller: throw InternalError
|
|
28
|
+
* else
|
|
29
|
+
* Parser-->>Caller: { table, event, owner? }
|
|
30
|
+
* end
|
|
31
|
+
* @memberOf module:for-fabric.shared
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseEventName(name: string): {
|
|
34
|
+
table: string;
|
|
35
|
+
event: OperationKeys | BulkCrudOperationKeys | string;
|
|
36
|
+
owner?: string;
|
|
37
|
+
} | {
|
|
38
|
+
event: string;
|
|
39
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Generates a Fabric event name from components
|
|
3
|
+
* @summary Creates a standardized event name by joining table, event, and optional owner with underscores
|
|
4
|
+
* @param {string} table - The table/collection name
|
|
5
|
+
* @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
|
|
6
|
+
* @param {string} [owner] - Optional owner identifier
|
|
7
|
+
* @return {string} The generated event name in format "table_event" or "table_event_owner"
|
|
8
|
+
* @function generateFabricEventName
|
|
9
|
+
* @memberOf module:for-fabric.shared
|
|
10
|
+
*/
|
|
11
|
+
export function generateFabricEventName(table, event, owner) {
|
|
12
|
+
const params = [table, event];
|
|
13
|
+
if (owner)
|
|
14
|
+
params.push(owner);
|
|
15
|
+
return params.join("_");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @description Parses a Fabric event name into its components
|
|
19
|
+
* @summary Splits an event name by underscores and extracts table, event, and optional owner
|
|
20
|
+
* @param {string} name - The event name to parse
|
|
21
|
+
* @return {{table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner: string}} The parsed components as a structured object
|
|
22
|
+
* @throws {InternalError} If the event name format is invalid
|
|
23
|
+
* @function parseEventName
|
|
24
|
+
* @mermaid
|
|
25
|
+
* sequenceDiagram
|
|
26
|
+
* participant Caller
|
|
27
|
+
* participant Parser as parseEventName
|
|
28
|
+
* Caller->>Parser: parseEventName(name)
|
|
29
|
+
* Parser->>Parser: split name by "_"
|
|
30
|
+
* alt parts length invalid
|
|
31
|
+
* Parser-->>Caller: throw InternalError
|
|
32
|
+
* else
|
|
33
|
+
* Parser-->>Caller: { table, event, owner? }
|
|
34
|
+
* end
|
|
35
|
+
* @memberOf module:for-fabric.shared
|
|
36
|
+
*/
|
|
37
|
+
export function parseEventName(name) {
|
|
38
|
+
const parts = name.split("_");
|
|
39
|
+
if (parts.length < 2 || parts.length > 3)
|
|
40
|
+
return { event: name };
|
|
41
|
+
return {
|
|
42
|
+
table: parts[0],
|
|
43
|
+
event: parts[1],
|
|
44
|
+
owner: parts[2],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUFhLEVBQ2IsS0FBcUQsRUFDckQsS0FBYztJQUVkLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSztRQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqRSxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBS2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBGYWJyaWMgZXZlbnQgbmFtZSBmcm9tIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBzdGFuZGFyZGl6ZWQgZXZlbnQgbmFtZSBieSBqb2luaW5nIHRhYmxlLCBldmVudCwgYW5kIG9wdGlvbmFsIG93bmVyIHdpdGggdW5kZXJzY29yZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSB0YWJsZS9jb2xsZWN0aW9uIG5hbWVcbiAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgdHlwZVxuICogQHBhcmFtIHtzdHJpbmd9IFtvd25lcl0gLSBPcHRpb25hbCBvd25lciBpZGVudGlmaWVyXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBnZW5lcmF0ZWQgZXZlbnQgbmFtZSBpbiBmb3JtYXQgXCJ0YWJsZV9ldmVudFwiIG9yIFwidGFibGVfZXZlbnRfb3duZXJcIlxuICogQGZ1bmN0aW9uIGdlbmVyYXRlRmFicmljRXZlbnROYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuc2hhcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZShcbiAgdGFibGU6IHN0cmluZyxcbiAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gIG93bmVyPzogc3RyaW5nXG4pIHtcbiAgY29uc3QgcGFyYW1zID0gW3RhYmxlLCBldmVudF07XG4gIGlmIChvd25lcikgcGFyYW1zLnB1c2gob3duZXIpO1xuICByZXR1cm4gcGFyYW1zLmpvaW4oXCJfXCIpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYSBGYWJyaWMgZXZlbnQgbmFtZSBpbnRvIGl0cyBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBTcGxpdHMgYW4gZXZlbnQgbmFtZSBieSB1bmRlcnNjb3JlcyBhbmQgZXh0cmFjdHMgdGFibGUsIGV2ZW50LCBhbmQgb3B0aW9uYWwgb3duZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGV2ZW50IG5hbWUgdG8gcGFyc2VcbiAqIEByZXR1cm4ge3t0YWJsZTogc3RyaW5nLCBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZywgb3duZXI6IHN0cmluZ319IFRoZSBwYXJzZWQgY29tcG9uZW50cyBhcyBhIHN0cnVjdHVyZWQgb2JqZWN0XG4gKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgZXZlbnQgbmFtZSBmb3JtYXQgaXMgaW52YWxpZFxuICogQGZ1bmN0aW9uIHBhcnNlRXZlbnROYW1lXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBQYXJzZXIgYXMgcGFyc2VFdmVudE5hbWVcbiAqICAgQ2FsbGVyLT4+UGFyc2VyOiBwYXJzZUV2ZW50TmFtZShuYW1lKVxuICogICBQYXJzZXItPj5QYXJzZXI6IHNwbGl0IG5hbWUgYnkgXCJfXCJcbiAqICAgYWx0IHBhcnRzIGxlbmd0aCBpbnZhbGlkXG4gKiAgICAgUGFyc2VyLS0+PkNhbGxlcjogdGhyb3cgSW50ZXJuYWxFcnJvclxuICogICBlbHNlXG4gKiAgICAgUGFyc2VyLS0+PkNhbGxlcjogeyB0YWJsZSwgZXZlbnQsIG93bmVyPyB9XG4gKiAgIGVuZFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFdmVudE5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdChcIl9cIik7XG4gIGlmIChwYXJ0cy5sZW5ndGggPCAyIHx8IHBhcnRzLmxlbmd0aCA+IDMpIHJldHVybiB7IGV2ZW50OiBuYW1lIH07XG4gIHJldHVybiB7XG4gICAgdGFibGU6IHBhcnRzWzBdLFxuICAgIGV2ZW50OiBwYXJ0c1sxXSxcbiAgICBvd25lcjogcGFydHNbMl0sXG4gIH0gYXMge1xuICAgIHRhYmxlOiBzdHJpbmc7XG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmc7XG4gICAgb3duZXI/OiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
export type GetCertificatesRequest = {
|
|
3
|
+
id?: string;
|
|
4
|
+
aki?: string;
|
|
5
|
+
serial?: string;
|
|
6
|
+
revoked_start?: string;
|
|
7
|
+
revoked_end?: string;
|
|
8
|
+
expired_start?: string;
|
|
9
|
+
expired_end?: string;
|
|
10
|
+
notrevoked?: boolean;
|
|
11
|
+
notexpired?: boolean;
|
|
12
|
+
ca?: string;
|
|
13
|
+
};
|
|
14
|
+
export type CertificateResponse = {
|
|
15
|
+
caname: string;
|
|
16
|
+
certs: {
|
|
17
|
+
PEM: string;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
export type FabricIdentity = {
|
|
21
|
+
id: string;
|
|
22
|
+
type: string;
|
|
23
|
+
affiliation: string;
|
|
24
|
+
attrs: {
|
|
25
|
+
name: string;
|
|
26
|
+
value: string;
|
|
27
|
+
}[];
|
|
28
|
+
max_enrollments: number;
|
|
29
|
+
};
|
|
30
|
+
export type IdentityResponse = {
|
|
31
|
+
caname: string;
|
|
32
|
+
identities: FabricIdentity[];
|
|
33
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9mYWJyaWMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcblxuZXhwb3J0IHR5cGUgR2V0Q2VydGlmaWNhdGVzUmVxdWVzdCA9IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGFraT86IHN0cmluZztcbiAgc2VyaWFsPzogc3RyaW5nO1xuICByZXZva2VkX3N0YXJ0Pzogc3RyaW5nO1xuICByZXZva2VkX2VuZD86IHN0cmluZztcbiAgZXhwaXJlZF9zdGFydD86IHN0cmluZztcbiAgZXhwaXJlZF9lbmQ/OiBzdHJpbmc7XG4gIG5vdHJldm9rZWQ/OiBib29sZWFuO1xuICBub3RleHBpcmVkPzogYm9vbGVhbjtcbiAgY2E/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDZXJ0aWZpY2F0ZVJlc3BvbnNlID0ge1xuICBjYW5hbWU6IHN0cmluZztcbiAgY2VydHM6IHsgUEVNOiBzdHJpbmcgfVtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmFicmljSWRlbnRpdHkgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgYWZmaWxpYXRpb246IHN0cmluZztcbiAgYXR0cnM6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgbWF4X2Vucm9sbG1lbnRzOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBJZGVudGl0eVJlc3BvbnNlID0ge1xuICBjYW5hbWU6IHN0cmluZztcbiAgaWRlbnRpdGllczogRmFicmljSWRlbnRpdHlbXTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Hyperledger Fabric Shared Module for Decaf-ts
|
|
3
|
+
* @summary This module provides common logic to the client and contract sides of Hyperledger Fabric
|
|
4
|
+
* @namespace shared
|
|
5
|
+
* @memberOf module:for-fabric
|
|
6
|
+
*/
|
|
7
|
+
export * from "./events";
|
|
8
|
+
export * from "./utils";
|
|
9
|
+
export * from "./types";
|
|
10
|
+
export * from "../client/services";
|
|
11
|
+
export * from "./model";
|
|
12
|
+
export * from "./decorators";
|
|
13
|
+
export * from "./constants";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Hyperledger Fabric Shared Module for Decaf-ts
|
|
3
|
+
* @summary This module provides common logic to the client and contract sides of Hyperledger Fabric
|
|
4
|
+
* @namespace shared
|
|
5
|
+
* @memberOf module:for-fabric
|
|
6
|
+
*/
|
|
7
|
+
export * from "./events.js";
|
|
8
|
+
export * from "./utils.js";
|
|
9
|
+
export * from "./types.js";
|
|
10
|
+
export * from "./../client/services/index.js";
|
|
11
|
+
export * from "./model/index.js";
|
|
12
|
+
export * from "./decorators.js";
|
|
13
|
+
export * from "./constants.js";
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsNEJBQXlCO0FBQ3pCLDJCQUF3QjtBQUN4QiwyQkFBd0I7QUFDeEIsOENBQW1DO0FBQ25DLGlDQUF3QjtBQUN4QixnQ0FBNkI7QUFDN0IsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gSHlwZXJsZWRnZXIgRmFicmljIFNoYXJlZCBNb2R1bGUgZm9yIERlY2FmLXRzXG4gKiBAc3VtbWFyeSBUaGlzIG1vZHVsZSBwcm92aWRlcyBjb21tb24gbG9naWMgdG8gdGhlIGNsaWVudCBhbmQgY29udHJhY3Qgc2lkZXMgb2YgSHlwZXJsZWRnZXIgRmFicmljXG4gKiBAbmFtZXNwYWNlIHNoYXJlZFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuLi9jbGllbnQvc2VydmljZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Context } from "fabric-contract-api";
|
|
2
|
+
/**
|
|
3
|
+
* @description Interface for health-check capable contracts/services
|
|
4
|
+
* @summary Provides a standard healthcheck method signature to probe liveness/readiness of Fabric contracts or services using a Fabric context
|
|
5
|
+
* @param {Context} ctx - Fabric transaction context used for performing the health check
|
|
6
|
+
* @return {Promise<string|boolean>} A message describing health or a boolean status
|
|
7
|
+
* @interface Checkable
|
|
8
|
+
* @memberOf module:for-fabric.shared
|
|
9
|
+
*/
|
|
10
|
+
export interface Checkable {
|
|
11
|
+
/**
|
|
12
|
+
* @description Perform a health check using the Fabric transaction context
|
|
13
|
+
* @summary Allows implementers to report readiness/liveness information that can be a textual message or a boolean status
|
|
14
|
+
* @param {Context} ctx - Fabric transaction context reference used during the check
|
|
15
|
+
* @return {Promise<string|boolean>} A string message describing health or a boolean indicating healthy/unhealthy
|
|
16
|
+
*/
|
|
17
|
+
healthcheck(ctx: Context): Promise<string | healthcheck>;
|
|
18
|
+
}
|
|
19
|
+
export type healthcheck = {
|
|
20
|
+
healthcheck: boolean;
|
|
21
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2thYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9pbnRlcmZhY2VzL0NoZWNrYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgaGVhbHRoLWNoZWNrIGNhcGFibGUgY29udHJhY3RzL3NlcnZpY2VzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIHN0YW5kYXJkIGhlYWx0aGNoZWNrIG1ldGhvZCBzaWduYXR1cmUgdG8gcHJvYmUgbGl2ZW5lc3MvcmVhZGluZXNzIG9mIEZhYnJpYyBjb250cmFjdHMgb3Igc2VydmljZXMgdXNpbmcgYSBGYWJyaWMgY29udGV4dFxuICogQHBhcmFtIHtDb250ZXh0fSBjdHggLSBGYWJyaWMgdHJhbnNhY3Rpb24gY29udGV4dCB1c2VkIGZvciBwZXJmb3JtaW5nIHRoZSBoZWFsdGggY2hlY2tcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nfGJvb2xlYW4+fSBBIG1lc3NhZ2UgZGVzY3JpYmluZyBoZWFsdGggb3IgYSBib29sZWFuIHN0YXR1c1xuICogQGludGVyZmFjZSBDaGVja2FibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja2FibGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm0gYSBoZWFsdGggY2hlY2sgdXNpbmcgdGhlIEZhYnJpYyB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBzdW1tYXJ5IEFsbG93cyBpbXBsZW1lbnRlcnMgdG8gcmVwb3J0IHJlYWRpbmVzcy9saXZlbmVzcyBpbmZvcm1hdGlvbiB0aGF0IGNhbiBiZSBhIHRleHR1YWwgbWVzc2FnZSBvciBhIGJvb2xlYW4gc3RhdHVzXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IC0gRmFicmljIHRyYW5zYWN0aW9uIGNvbnRleHQgcmVmZXJlbmNlIHVzZWQgZHVyaW5nIHRoZSBjaGVja1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZ3xib29sZWFuPn0gQSBzdHJpbmcgbWVzc2FnZSBkZXNjcmliaW5nIGhlYWx0aCBvciBhIGJvb2xlYW4gaW5kaWNhdGluZyBoZWFsdGh5L3VuaGVhbHRoeVxuICAgKi9cbiAgaGVhbHRoY2hlY2soY3R4OiBDb250ZXh0KTogUHJvbWlzZTxzdHJpbmcgfCBoZWFsdGhjaGVjaz47XG59XG5cbmV4cG9ydCB0eXBlIGhlYWx0aGNoZWNrID0geyBoZWFsdGhjaGVjazogYm9vbGVhbiB9O1xuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Overflow-safe addition operation
|
|
3
|
+
* @summary Adds two numbers and verifies no overflow by reverse-checking the operands
|
|
4
|
+
* @param {number} a - First operand
|
|
5
|
+
* @param {number} b - Second operand
|
|
6
|
+
* @return {number} The sum of a and b
|
|
7
|
+
* @function add
|
|
8
|
+
* @throws {OverflowError} on addition overflow
|
|
9
|
+
* @memberOf module:for-fabric.shared
|
|
10
|
+
*/
|
|
11
|
+
export declare function add(a: number, b: number): number;
|
|
12
|
+
/**
|
|
13
|
+
* @description Overflow-safe subtraction operation
|
|
14
|
+
* @summary Subtracts b from a and validates no overflow by reverse-checking the operands
|
|
15
|
+
* @param {number} a - Minuend
|
|
16
|
+
* @param {number} b - Subtrahend
|
|
17
|
+
* @return {number} The difference a - b
|
|
18
|
+
* @function sub
|
|
19
|
+
* @throws {OverflowError} on subtaction overflow
|
|
20
|
+
* @memberOf module:for-fabric.shared
|
|
21
|
+
*/
|
|
22
|
+
export declare function sub(a: number, b: number): number;
|
|
23
|
+
/**
|
|
24
|
+
* @summary Safe Integer Parse
|
|
25
|
+
*
|
|
26
|
+
* @param {string} string
|
|
27
|
+
*
|
|
28
|
+
* @function safeParseInt
|
|
29
|
+
*
|
|
30
|
+
* @throws {ValidationError} if parseInt returns NaN
|
|
31
|
+
*
|
|
32
|
+
* @memberOf module:for-fabric.shared
|
|
33
|
+
*/
|
|
34
|
+
export declare function safeParseInt(string: string): number;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { stringFormat } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { OverflowError } from "./errors.js";
|
|
3
|
+
import { ValidationError } from "@decaf-ts/db-decorators";
|
|
4
|
+
/**
|
|
5
|
+
* @description Overflow-safe addition operation
|
|
6
|
+
* @summary Adds two numbers and verifies no overflow by reverse-checking the operands
|
|
7
|
+
* @param {number} a - First operand
|
|
8
|
+
* @param {number} b - Second operand
|
|
9
|
+
* @return {number} The sum of a and b
|
|
10
|
+
* @function add
|
|
11
|
+
* @throws {OverflowError} on addition overflow
|
|
12
|
+
* @memberOf module:for-fabric.shared
|
|
13
|
+
*/
|
|
14
|
+
export function add(a, b) {
|
|
15
|
+
const c = a + b;
|
|
16
|
+
if (a !== c - b || b !== c - a) {
|
|
17
|
+
throw new OverflowError(`Addition overflow: ${a} + ${b}`);
|
|
18
|
+
}
|
|
19
|
+
return c;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @description Overflow-safe subtraction operation
|
|
23
|
+
* @summary Subtracts b from a and validates no overflow by reverse-checking the operands
|
|
24
|
+
* @param {number} a - Minuend
|
|
25
|
+
* @param {number} b - Subtrahend
|
|
26
|
+
* @return {number} The difference a - b
|
|
27
|
+
* @function sub
|
|
28
|
+
* @throws {OverflowError} on subtaction overflow
|
|
29
|
+
* @memberOf module:for-fabric.shared
|
|
30
|
+
*/
|
|
31
|
+
export function sub(a, b) {
|
|
32
|
+
const c = a - b;
|
|
33
|
+
if (a !== c + b || b !== a - c) {
|
|
34
|
+
throw new OverflowError(`Subtraction overflow: ${a} - ${b}`);
|
|
35
|
+
}
|
|
36
|
+
return c;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @summary Safe Integer Parse
|
|
40
|
+
*
|
|
41
|
+
* @param {string} string
|
|
42
|
+
*
|
|
43
|
+
* @function safeParseInt
|
|
44
|
+
*
|
|
45
|
+
* @throws {ValidationError} if parseInt returns NaN
|
|
46
|
+
*
|
|
47
|
+
* @memberOf module:for-fabric.shared
|
|
48
|
+
*/
|
|
49
|
+
export function safeParseInt(string) {
|
|
50
|
+
// Regular expression to check if string only have digits
|
|
51
|
+
const digitRegex = /^\d+$/;
|
|
52
|
+
if (!digitRegex.test(string)) {
|
|
53
|
+
throw new ValidationError(stringFormat("Failed to parse: {0}", "string contains digits"));
|
|
54
|
+
}
|
|
55
|
+
const parsedint = parseInt(string);
|
|
56
|
+
if (isNaN(parsedint)) {
|
|
57
|
+
throw new ValidationError(stringFormat("Failed to parse: {0}", "string is not a parsable integer"));
|
|
58
|
+
}
|
|
59
|
+
return parsedint;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvbWF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBaUI7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMseURBQXlEO0lBQ3pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxrQ0FBa0MsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdGb3JtYXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBPdmVyZmxvd0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3ZlcmZsb3ctc2FmZSBhZGRpdGlvbiBvcGVyYXRpb25cbiAqIEBzdW1tYXJ5IEFkZHMgdHdvIG51bWJlcnMgYW5kIHZlcmlmaWVzIG5vIG92ZXJmbG93IGJ5IHJldmVyc2UtY2hlY2tpbmcgdGhlIG9wZXJhbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gYSAtIEZpcnN0IG9wZXJhbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBiIC0gU2Vjb25kIG9wZXJhbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHN1bSBvZiBhIGFuZCBiXG4gKiBAZnVuY3Rpb24gYWRkXG4gKiBAdGhyb3dzIHtPdmVyZmxvd0Vycm9yfSBvbiBhZGRpdGlvbiBvdmVyZmxvd1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgYyA9IGEgKyBiO1xuICBpZiAoYSAhPT0gYyAtIGIgfHwgYiAhPT0gYyAtIGEpIHtcbiAgICB0aHJvdyBuZXcgT3ZlcmZsb3dFcnJvcihgQWRkaXRpb24gb3ZlcmZsb3c6ICR7YX0gKyAke2J9YCk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE92ZXJmbG93LXNhZmUgc3VidHJhY3Rpb24gb3BlcmF0aW9uXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdHMgYiBmcm9tIGEgYW5kIHZhbGlkYXRlcyBubyBvdmVyZmxvdyBieSByZXZlcnNlLWNoZWNraW5nIHRoZSBvcGVyYW5kc1xuICogQHBhcmFtIHtudW1iZXJ9IGEgLSBNaW51ZW5kXG4gKiBAcGFyYW0ge251bWJlcn0gYiAtIFN1YnRyYWhlbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGRpZmZlcmVuY2UgYSAtIGJcbiAqIEBmdW5jdGlvbiBzdWJcbiAqIEB0aHJvd3Mge092ZXJmbG93RXJyb3J9IG9uIHN1YnRhY3Rpb24gb3ZlcmZsb3dcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGMgPSBhIC0gYjtcbiAgaWYgKGEgIT09IGMgKyBiIHx8IGIgIT09IGEgLSBjKSB7XG4gICAgdGhyb3cgbmV3IE92ZXJmbG93RXJyb3IoYFN1YnRyYWN0aW9uIG92ZXJmbG93OiAke2F9IC0gJHtifWApO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFNhZmUgSW50ZWdlciBQYXJzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqXG4gKiBAZnVuY3Rpb24gc2FmZVBhcnNlSW50XG4gKlxuICogQHRocm93cyB7VmFsaWRhdGlvbkVycm9yfSBpZiBwYXJzZUludCByZXR1cm5zIE5hTlxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUludChzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbiB0byBjaGVjayBpZiBzdHJpbmcgb25seSBoYXZlIGRpZ2l0c1xuICBjb25zdCBkaWdpdFJlZ2V4ID0gL15cXGQrJC87XG4gIGlmICghZGlnaXRSZWdleC50ZXN0KHN0cmluZykpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgc3RyaW5nRm9ybWF0KFwiRmFpbGVkIHRvIHBhcnNlOiB7MH1cIiwgXCJzdHJpbmcgY29udGFpbnMgZGlnaXRzXCIpXG4gICAgKTtcbiAgfVxuICBjb25zdCBwYXJzZWRpbnQgPSBwYXJzZUludChzdHJpbmcpO1xuICBpZiAoaXNOYU4ocGFyc2VkaW50KSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBzdHJpbmdGb3JtYXQoXCJGYWlsZWQgdG8gcGFyc2U6IHswfVwiLCBcInN0cmluZyBpcyBub3QgYSBwYXJzYWJsZSBpbnRlZ2VyXCIpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkaW50O1xufVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BaseModel } from "@decaf-ts/core";
|
|
2
|
+
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { IdentityCredentials } from "./IdentityCredentials";
|
|
4
|
+
import { IdentityType } from "../constants";
|
|
5
|
+
/**
|
|
6
|
+
* @description Identity model representing a Fabric wallet entry
|
|
7
|
+
* @summary Encapsulates an identity stored in a Fabric wallet, including its MSP identifier, credential linkage, and type information. Built on BaseModel for integration with Decaf validation and persistence.
|
|
8
|
+
* @param {ModelArg<Identity>} [arg] - Optional initialization object used to populate model fields
|
|
9
|
+
* @class Identity
|
|
10
|
+
* @example
|
|
11
|
+
* // Create a new identity referencing existing credentials
|
|
12
|
+
* const id = new Identity({ id: "user1", mspId: "Org1MSP", type: IdentityType.X509 });
|
|
13
|
+
* @mermaid
|
|
14
|
+
* sequenceDiagram
|
|
15
|
+
* participant App
|
|
16
|
+
* participant Model as Identity
|
|
17
|
+
* App->>Model: new Identity({ id, mspId, type })
|
|
18
|
+
* Model-->>App: instance
|
|
19
|
+
*/
|
|
20
|
+
export declare class Identity extends BaseModel {
|
|
21
|
+
/**
|
|
22
|
+
* @description Unique identifier of the identity in the wallet
|
|
23
|
+
* @summary Primary key used to reference this identity record
|
|
24
|
+
*/
|
|
25
|
+
id?: string;
|
|
26
|
+
/**
|
|
27
|
+
* @description Link to the identity credentials stored separately
|
|
28
|
+
* @summary One-to-one relationship to the credentials entity; cascades on update and delete
|
|
29
|
+
*/
|
|
30
|
+
credentials?: IdentityCredentials;
|
|
31
|
+
/**
|
|
32
|
+
* @description Membership Service Provider identifier
|
|
33
|
+
* @summary The MSP ID corresponding to the organization that issued this identity
|
|
34
|
+
*/
|
|
35
|
+
mspId?: string;
|
|
36
|
+
/**
|
|
37
|
+
* @description Type of identity
|
|
38
|
+
* @summary Indicates the identity encoding/format; defaults to X.509
|
|
39
|
+
*/
|
|
40
|
+
type?: IdentityType;
|
|
41
|
+
constructor(arg: ModelArg<Identity>);
|
|
42
|
+
}
|