@agirails/sdk 2.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/agirails +10 -0
- package/dist/ACTPClient.d.ts +9 -4
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +12 -8
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/ACTPKernel.json +87 -6
- package/dist/adapters/BaseAdapter.d.ts +3 -3
- package/dist/adapters/BaseAdapter.js +3 -3
- package/dist/adapters/BasicAdapter.d.ts +1 -1
- package/dist/adapters/BasicAdapter.js +2 -2
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/StandardAdapter.d.ts +30 -8
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +34 -9
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/adapters/X402Adapter.d.ts.map +1 -1
- package/dist/adapters/X402Adapter.js +14 -12
- package/dist/adapters/X402Adapter.js.map +1 -1
- package/dist/api/agirailsApp.d.ts +197 -0
- package/dist/api/agirailsApp.d.ts.map +1 -0
- package/dist/api/agirailsApp.js +175 -0
- package/dist/api/agirailsApp.js.map +1 -0
- package/dist/cli/agirails.d.ts +10 -0
- package/dist/cli/agirails.d.ts.map +1 -0
- package/dist/cli/agirails.js +187 -0
- package/dist/cli/agirails.js.map +1 -0
- package/dist/cli/commands/autopublish.d.ts +13 -0
- package/dist/cli/commands/autopublish.d.ts.map +1 -0
- package/dist/cli/commands/autopublish.js +156 -0
- package/dist/cli/commands/autopublish.js.map +1 -0
- package/dist/cli/commands/batch.js +1 -1
- package/dist/cli/commands/claim-code.d.ts +11 -0
- package/dist/cli/commands/claim-code.d.ts.map +1 -0
- package/dist/cli/commands/claim-code.js +160 -0
- package/dist/cli/commands/claim-code.js.map +1 -0
- package/dist/cli/commands/claim.d.ts +17 -0
- package/dist/cli/commands/claim.d.ts.map +1 -0
- package/dist/cli/commands/claim.js +104 -0
- package/dist/cli/commands/claim.js.map +1 -0
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/find.d.ts +23 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +230 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/health.d.ts +16 -0
- package/dist/cli/commands/health.d.ts.map +1 -0
- package/dist/cli/commands/health.js +287 -0
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +42 -13
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/negotiate.d.ts +11 -0
- package/dist/cli/commands/negotiate.d.ts.map +1 -0
- package/dist/cli/commands/negotiate.js +192 -0
- package/dist/cli/commands/negotiate.js.map +1 -0
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +310 -17
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/pull.d.ts +7 -3
- package/dist/cli/commands/pull.d.ts.map +1 -1
- package/dist/cli/commands/pull.js +105 -13
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/receipt.d.ts +31 -0
- package/dist/cli/commands/receipt.d.ts.map +1 -0
- package/dist/cli/commands/receipt.js +92 -0
- package/dist/cli/commands/receipt.js.map +1 -0
- package/dist/cli/commands/test.d.ts +15 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +176 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/index.js +19 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/testjobs/index.d.ts +18 -0
- package/dist/cli/testjobs/index.d.ts.map +1 -0
- package/dist/cli/testjobs/index.js +45 -0
- package/dist/cli/testjobs/index.js.map +1 -0
- package/dist/cli/testjobs/templates/automation.d.ts +3 -0
- package/dist/cli/testjobs/templates/automation.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/automation.js +32 -0
- package/dist/cli/testjobs/templates/automation.js.map +1 -0
- package/dist/cli/testjobs/templates/code-review.d.ts +3 -0
- package/dist/cli/testjobs/templates/code-review.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/code-review.js +27 -0
- package/dist/cli/testjobs/templates/code-review.js.map +1 -0
- package/dist/cli/testjobs/templates/content-writing.d.ts +3 -0
- package/dist/cli/testjobs/templates/content-writing.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/content-writing.js +20 -0
- package/dist/cli/testjobs/templates/content-writing.js.map +1 -0
- package/dist/cli/testjobs/templates/data-analysis.d.ts +3 -0
- package/dist/cli/testjobs/templates/data-analysis.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/data-analysis.js +34 -0
- package/dist/cli/testjobs/templates/data-analysis.js.map +1 -0
- package/dist/cli/testjobs/templates/generic.d.ts +3 -0
- package/dist/cli/testjobs/templates/generic.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/generic.js +17 -0
- package/dist/cli/testjobs/templates/generic.js.map +1 -0
- package/dist/cli/testjobs/templates/security-audit.d.ts +3 -0
- package/dist/cli/testjobs/templates/security-audit.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/security-audit.js +30 -0
- package/dist/cli/testjobs/templates/security-audit.js.map +1 -0
- package/dist/cli/testjobs/templates/testing.d.ts +3 -0
- package/dist/cli/testjobs/templates/testing.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/testing.js +29 -0
- package/dist/cli/testjobs/templates/testing.js.map +1 -0
- package/dist/cli/testjobs/templates/translation.d.ts +3 -0
- package/dist/cli/testjobs/templates/translation.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/translation.js +16 -0
- package/dist/cli/testjobs/templates/translation.js.map +1 -0
- package/dist/cli/testjobs/types.d.ts +16 -0
- package/dist/cli/testjobs/types.d.ts.map +1 -0
- package/dist/cli/testjobs/types.js +8 -0
- package/dist/cli/testjobs/types.js.map +1 -0
- package/dist/cli/utils/client.js +1 -1
- package/dist/cli/utils/client.js.map +1 -1
- package/dist/cli/utils/config.d.ts +12 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +29 -2
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/config/agirailsmd.d.ts +1 -1
- package/dist/config/agirailsmd.d.ts.map +1 -1
- package/dist/config/agirailsmd.js +3 -0
- package/dist/config/agirailsmd.js.map +1 -1
- package/dist/config/agirailsmdV4.d.ts +82 -0
- package/dist/config/agirailsmdV4.d.ts.map +1 -0
- package/dist/config/agirailsmdV4.js +254 -0
- package/dist/config/agirailsmdV4.js.map +1 -0
- package/dist/config/defaults.d.ts +50 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +77 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/networks.d.ts +1 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +16 -13
- package/dist/config/networks.js.map +1 -1
- package/dist/config/publishPipeline.d.ts.map +1 -1
- package/dist/config/publishPipeline.js +4 -0
- package/dist/config/publishPipeline.js.map +1 -1
- package/dist/config/slugUtils.d.ts +28 -0
- package/dist/config/slugUtils.d.ts.map +1 -0
- package/dist/config/slugUtils.js +51 -0
- package/dist/config/slugUtils.js.map +1 -0
- package/dist/level0/ServiceDirectory.d.ts +6 -6
- package/dist/level0/ServiceDirectory.js +11 -11
- package/dist/level0/ServiceDirectory.js.map +1 -1
- package/dist/level1/Agent.d.ts +10 -10
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +45 -29
- package/dist/level1/Agent.js.map +1 -1
- package/dist/level1/pricing/PriceCalculator.js +2 -2
- package/dist/level1/pricing/PriceCalculator.js.map +1 -1
- package/dist/negotiation/BuyerOrchestrator.d.ts +108 -0
- package/dist/negotiation/BuyerOrchestrator.d.ts.map +1 -0
- package/dist/negotiation/BuyerOrchestrator.js +377 -0
- package/dist/negotiation/BuyerOrchestrator.js.map +1 -0
- package/dist/negotiation/DecisionEngine.d.ts +44 -0
- package/dist/negotiation/DecisionEngine.d.ts.map +1 -0
- package/dist/negotiation/DecisionEngine.js +116 -0
- package/dist/negotiation/DecisionEngine.js.map +1 -0
- package/dist/negotiation/PolicyEngine.d.ts +126 -0
- package/dist/negotiation/PolicyEngine.d.ts.map +1 -0
- package/dist/negotiation/PolicyEngine.js +265 -0
- package/dist/negotiation/PolicyEngine.js.map +1 -0
- package/dist/negotiation/SessionStore.d.ts +57 -0
- package/dist/negotiation/SessionStore.d.ts.map +1 -0
- package/dist/negotiation/SessionStore.js +179 -0
- package/dist/negotiation/SessionStore.js.map +1 -0
- package/dist/negotiation/index.d.ts +9 -0
- package/dist/negotiation/index.d.ts.map +1 -0
- package/dist/negotiation/index.js +12 -0
- package/dist/negotiation/index.js.map +1 -0
- package/dist/protocol/ACTPKernel.d.ts +32 -4
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +70 -16
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/AgentRegistry.js +2 -2
- package/dist/protocol/AgentRegistry.js.map +1 -1
- package/dist/protocol/DIDResolver.js +2 -2
- package/dist/protocol/DIDResolver.js.map +1 -1
- package/dist/protocol/EASHelper.d.ts +2 -2
- package/dist/protocol/EASHelper.js +5 -5
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +2 -2
- package/dist/protocol/EscrowVault.js +4 -4
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +4 -4
- package/dist/protocol/EventMonitor.js +5 -5
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +5 -5
- package/dist/protocol/MessageSigner.js +8 -8
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +4 -4
- package/dist/protocol/ProofGenerator.js +6 -6
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +24 -14
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +60 -45
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/IACTPRuntime.d.ts +12 -1
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +22 -9
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +76 -24
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/MockStateManager.js +2 -2
- package/dist/runtime/MockStateManager.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +1 -1
- package/dist/types/erc8004.d.ts +2 -2
- package/dist/types/erc8004.d.ts.map +1 -1
- package/dist/types/erc8004.js +4 -1
- package/dist/types/erc8004.js.map +1 -1
- package/dist/types/state.d.ts +1 -1
- package/dist/types/state.js +1 -1
- package/dist/types/transaction.d.ts +4 -0
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/types/x402.d.ts +17 -9
- package/dist/types/x402.d.ts.map +1 -1
- package/dist/types/x402.js +9 -9
- package/dist/types/x402.js.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +1 -1
- package/dist/utils/ErrorRecoveryGuide.js +1 -1
- package/dist/utils/Helpers.d.ts +6 -6
- package/dist/utils/Helpers.js +7 -7
- package/dist/utils/Helpers.js.map +1 -1
- package/dist/utils/IPFSClient.d.ts +7 -7
- package/dist/utils/IPFSClient.js +9 -9
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/Logger.d.ts +4 -4
- package/dist/utils/Logger.js +8 -8
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/NonceManager.d.ts +9 -9
- package/dist/utils/NonceManager.js +19 -19
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/RateLimiter.d.ts +10 -10
- package/dist/utils/RateLimiter.d.ts.map +1 -1
- package/dist/utils/RateLimiter.js +22 -22
- package/dist/utils/RateLimiter.js.map +1 -1
- package/dist/utils/ReceivedNonceTracker.d.ts +10 -10
- package/dist/utils/ReceivedNonceTracker.js +20 -20
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/SDKLifecycle.d.ts +3 -3
- package/dist/utils/SDKLifecycle.js +7 -7
- package/dist/utils/SDKLifecycle.js.map +1 -1
- package/dist/utils/SecureNonce.d.ts +1 -1
- package/dist/utils/SecureNonce.js +1 -1
- package/dist/utils/Semaphore.d.ts +2 -2
- package/dist/utils/Semaphore.js +2 -2
- package/dist/utils/UsedAttestationTracker.d.ts +13 -13
- package/dist/utils/UsedAttestationTracker.js +20 -20
- package/dist/utils/UsedAttestationTracker.js.map +1 -1
- package/dist/utils/security.d.ts +3 -3
- package/dist/utils/security.js +4 -4
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/validation.d.ts +4 -4
- package/dist/utils/validation.js +9 -9
- package/dist/utils/validation.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
- package/dist/wallet/AutoWalletProvider.js +2 -1
- package/dist/wallet/AutoWalletProvider.js.map +1 -1
- package/dist/wallet/IWalletProvider.d.ts +2 -0
- package/dist/wallet/IWalletProvider.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.d.ts +22 -2
- package/dist/wallet/aa/TransactionBatcher.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.js +51 -9
- package/dist/wallet/aa/TransactionBatcher.js.map +1 -1
- package/package.json +6 -12
package/dist/types/x402.js
CHANGED
|
@@ -83,8 +83,14 @@ var X402ErrorCode;
|
|
|
83
83
|
X402ErrorCode["INVALID_NETWORK"] = "INVALID_NETWORK";
|
|
84
84
|
/** Server's network doesn't match client's expected network */
|
|
85
85
|
X402ErrorCode["NETWORK_MISMATCH"] = "NETWORK_MISMATCH";
|
|
86
|
-
/**
|
|
86
|
+
/** Payment execution failed (transfer error, relay error, or config issue) */
|
|
87
87
|
X402ErrorCode["PAYMENT_FAILED"] = "PAYMENT_FAILED";
|
|
88
|
+
/**
|
|
89
|
+
* Provider was paid but fee transfer failed. DO NOT RETRY — the provider
|
|
90
|
+
* already received funds. The `providerPaidTxHash` property on the error
|
|
91
|
+
* contains the on-chain tx hash for reconciliation.
|
|
92
|
+
*/
|
|
93
|
+
X402ErrorCode["PROVIDER_PAID_FEE_FAILED"] = "PROVIDER_PAID_FEE_FAILED";
|
|
88
94
|
/** Retry request with proof headers failed */
|
|
89
95
|
X402ErrorCode["RETRY_FAILED"] = "RETRY_FAILED";
|
|
90
96
|
/** X-Payment-Deadline has already passed */
|
|
@@ -111,18 +117,12 @@ var X402ErrorCode;
|
|
|
111
117
|
* ```
|
|
112
118
|
*/
|
|
113
119
|
class X402Error extends Error {
|
|
114
|
-
|
|
115
|
-
* Creates a new X402Error.
|
|
116
|
-
*
|
|
117
|
-
* @param message - Human-readable error message
|
|
118
|
-
* @param code - Error code for programmatic handling
|
|
119
|
-
* @param response - Optional HTTP response that triggered the error
|
|
120
|
-
*/
|
|
121
|
-
constructor(message, code, response) {
|
|
120
|
+
constructor(message, code, response, options) {
|
|
122
121
|
super(message);
|
|
123
122
|
this.code = code;
|
|
124
123
|
this.response = response;
|
|
125
124
|
this.name = 'X402Error';
|
|
125
|
+
this.providerPaidTxHash = options?.providerPaidTxHash;
|
|
126
126
|
// Maintains proper stack trace in V8 environments
|
|
127
127
|
if (Error.captureStackTrace) {
|
|
128
128
|
Error.captureStackTrace(this, X402Error);
|
package/dist/types/x402.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/types/x402.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;GAIG;AACU,QAAA,YAAY,GAAG;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,oBAAoB;IAC9B,8CAA8C;IAC9C,OAAO,EAAE,mBAAmB;IAC5B,sCAAsC;IACtC,MAAM,EAAE,kBAAkB;IAC1B,wDAAwD;IACxD,OAAO,EAAE,mBAAmB;IAC5B,uCAAuC;IACvC,KAAK,EAAE,iBAAiB;IACxB,0CAA0C;IAC1C,QAAQ,EAAE,oBAAoB;IAC9B,0CAA0C;IAC1C,cAAc,EAAE,kBAAkB;IAClC,gDAAgD;IAChD,UAAU,EAAE,cAAc;CAClB,CAAC;AAEX;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG;IAChC,wCAAwC;IACxC,KAAK,EAAE,iBAAiB;IACxB,mCAAmC;IACnC,SAAS,EAAE,qBAAqB;CACxB,CAAC;AA4CX,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;GAIG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/types/x402.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;GAIG;AACU,QAAA,YAAY,GAAG;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,oBAAoB;IAC9B,8CAA8C;IAC9C,OAAO,EAAE,mBAAmB;IAC5B,sCAAsC;IACtC,MAAM,EAAE,kBAAkB;IAC1B,wDAAwD;IACxD,OAAO,EAAE,mBAAmB;IAC5B,uCAAuC;IACvC,KAAK,EAAE,iBAAiB;IACxB,0CAA0C;IAC1C,QAAQ,EAAE,oBAAoB;IAC9B,0CAA0C;IAC1C,cAAc,EAAE,kBAAkB;IAClC,gDAAgD;IAChD,UAAU,EAAE,cAAc;CAClB,CAAC;AAEX;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG;IAChC,wCAAwC;IACxC,KAAK,EAAE,iBAAiB;IACxB,mCAAmC;IACnC,SAAS,EAAE,qBAAqB;CACxB,CAAC;AA4CX,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;GAIG;AACH,IAAY,aAqCX;AArCD,WAAY,aAAa;IACvB,kCAAkC;IAClC,sDAAqC,CAAA;IAErC,+CAA+C;IAC/C,oDAAmC,CAAA;IAEnC,iEAAiE;IACjE,kDAAiC,CAAA;IAEjC,wDAAwD;IACxD,oDAAmC,CAAA;IAEnC,oDAAoD;IACpD,oDAAmC,CAAA;IAEnC,+DAA+D;IAC/D,sDAAqC,CAAA;IAErC,8EAA8E;IAC9E,kDAAiC,CAAA;IAEjC;;;;OAIG;IACH,sEAAqD,CAAA;IAErD,8CAA8C;IAC9C,8CAA6B,CAAA;IAE7B,4CAA4C;IAC5C,oDAAmC,CAAA;IAEnC,4CAA4C;IAC5C,wDAAuC,CAAA;AACzC,CAAC,EArCW,aAAa,6BAAb,aAAa,QAqCxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,SAAU,SAAQ,KAAK;IAgBlC,YACE,OAAe,EACC,IAAmB,EACnB,QAAmB,EACnC,OAAyC;QAEzC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAe;QACnB,aAAQ,GAAR,QAAQ,CAAW;QAlBrB,SAAI,GAAG,WAAW,CAAC;QAsBjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,CAAC;QAEtD,kDAAkD;QAClD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,cAAc,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;CACF;AArCD,8BAqCC;AAwCD,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,SAAS,CAAC;AACpC,CAAC;AAFD,kCAEC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,cAAc,CAAC;AAClE,CAAC;AAFD,gDAEC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ErrorRecoveryGuide - Structured Error Classification and Recovery Guidance
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
*Security: Provides comprehensive error recovery documentation
|
|
5
5
|
* to help developers handle errors appropriately and avoid security pitfalls.
|
|
6
6
|
*
|
|
7
7
|
* @module utils/ErrorRecoveryGuide
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* ErrorRecoveryGuide - Structured Error Classification and Recovery Guidance
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
*Security: Provides comprehensive error recovery documentation
|
|
6
6
|
* to help developers handle errors appropriately and avoid security pitfalls.
|
|
7
7
|
*
|
|
8
8
|
* @module utils/ErrorRecoveryGuide
|
package/dist/utils/Helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helpers - Common utility functions for ACTP SDK
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
*Security: Convenience methods for common operations
|
|
5
5
|
* to reduce boilerplate and prevent mistakes.
|
|
6
6
|
*
|
|
7
7
|
* @module utils/Helpers
|
|
@@ -35,7 +35,7 @@ export declare const USDC: {
|
|
|
35
35
|
/**
|
|
36
36
|
* Convert USDC wei to human-readable string
|
|
37
37
|
*
|
|
38
|
-
*
|
|
38
|
+
*Security: Uses pure BigInt arithmetic to prevent precision loss
|
|
39
39
|
*
|
|
40
40
|
* @param weiAmount - Amount in USDC wei
|
|
41
41
|
* @param decimals - Number of decimal places to show (default: 2)
|
|
@@ -246,7 +246,7 @@ export declare const State: {
|
|
|
246
246
|
/**
|
|
247
247
|
* Get valid next states from current state
|
|
248
248
|
*
|
|
249
|
-
*
|
|
249
|
+
*Security: Must match ACTPKernel contract state machine exactly
|
|
250
250
|
* Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine
|
|
251
251
|
*
|
|
252
252
|
* @param currentState - Current state
|
|
@@ -360,7 +360,7 @@ export declare function shortenAddress(address: string, chars?: number): string;
|
|
|
360
360
|
* ============================================================================
|
|
361
361
|
* Service Metadata Utilities
|
|
362
362
|
*
|
|
363
|
-
*
|
|
363
|
+
*Security: ACTPKernel expects bytes32 serviceHash, not raw strings.
|
|
364
364
|
* These utilities handle proper hashing and encoding of service metadata.
|
|
365
365
|
* ============================================================================
|
|
366
366
|
*/
|
|
@@ -376,7 +376,7 @@ export interface ServiceMetadata {
|
|
|
376
376
|
/**
|
|
377
377
|
* Service metadata utilities for ACTP transactions
|
|
378
378
|
*
|
|
379
|
-
*
|
|
379
|
+
*Security: The ACTPKernel contract expects a bytes32 serviceHash,
|
|
380
380
|
* not a raw JSON string. This utility properly hashes metadata before on-chain calls.
|
|
381
381
|
*/
|
|
382
382
|
export declare const ServiceHash: {
|
|
@@ -392,7 +392,7 @@ export declare const ServiceHash: {
|
|
|
392
392
|
/**
|
|
393
393
|
* Hash service metadata to bytes32 using keccak256
|
|
394
394
|
*
|
|
395
|
-
*
|
|
395
|
+
*Security: This is what should be passed to ACTPKernel.createTransaction()
|
|
396
396
|
*
|
|
397
397
|
* @param metadata - Service metadata (string or object)
|
|
398
398
|
* @returns bytes32 hash string (0x-prefixed, 64 hex chars)
|
package/dist/utils/Helpers.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Helpers - Common utility functions for ACTP SDK
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
*Security: Convenience methods for common operations
|
|
6
6
|
* to reduce boilerplate and prevent mistakes.
|
|
7
7
|
*
|
|
8
8
|
* @module utils/Helpers
|
|
@@ -44,7 +44,7 @@ exports.USDC = {
|
|
|
44
44
|
/**
|
|
45
45
|
* Convert USDC wei to human-readable string
|
|
46
46
|
*
|
|
47
|
-
*
|
|
47
|
+
*Security: Uses pure BigInt arithmetic to prevent precision loss
|
|
48
48
|
*
|
|
49
49
|
* @param weiAmount - Amount in USDC wei
|
|
50
50
|
* @param decimals - Number of decimal places to show (default: 2)
|
|
@@ -59,12 +59,12 @@ exports.USDC = {
|
|
|
59
59
|
*/
|
|
60
60
|
fromWei(weiAmount, decimals = 2) {
|
|
61
61
|
const amount = typeof weiAmount === 'string' ? BigInt(weiAmount) : weiAmount;
|
|
62
|
-
//
|
|
62
|
+
// Security: Use pure BigInt arithmetic for precision
|
|
63
63
|
// Calculate divisor and multiplier using BigInt to avoid floating point
|
|
64
64
|
const divisorExponent = 6 - decimals;
|
|
65
65
|
const divisor = divisorExponent >= 0 ? BigInt(10 ** divisorExponent) : 1n;
|
|
66
66
|
const maxDecimal = BigInt(10 ** decimals);
|
|
67
|
-
//
|
|
67
|
+
// Security: Round using BigInt arithmetic
|
|
68
68
|
// Add half divisor before division for proper rounding (banker's rounding alternative)
|
|
69
69
|
const roundedAmount = divisorExponent >= 0
|
|
70
70
|
? (amount + divisor / 2n) / divisor
|
|
@@ -351,7 +351,7 @@ exports.State = {
|
|
|
351
351
|
/**
|
|
352
352
|
* Get valid next states from current state
|
|
353
353
|
*
|
|
354
|
-
*
|
|
354
|
+
*Security: Must match ACTPKernel contract state machine exactly
|
|
355
355
|
* Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine
|
|
356
356
|
*
|
|
357
357
|
* @param currentState - Current state
|
|
@@ -501,7 +501,7 @@ exports.shortenAddress = shortenAddress;
|
|
|
501
501
|
/**
|
|
502
502
|
* Service metadata utilities for ACTP transactions
|
|
503
503
|
*
|
|
504
|
-
*
|
|
504
|
+
*Security: The ACTPKernel contract expects a bytes32 serviceHash,
|
|
505
505
|
* not a raw JSON string. This utility properly hashes metadata before on-chain calls.
|
|
506
506
|
*/
|
|
507
507
|
exports.ServiceHash = {
|
|
@@ -526,7 +526,7 @@ exports.ServiceHash = {
|
|
|
526
526
|
/**
|
|
527
527
|
* Hash service metadata to bytes32 using keccak256
|
|
528
528
|
*
|
|
529
|
-
*
|
|
529
|
+
*Security: This is what should be passed to ACTPKernel.createTransaction()
|
|
530
530
|
*
|
|
531
531
|
* @param metadata - Service metadata (string or object)
|
|
532
532
|
* @returns bytes32 hash string (0x-prefixed, 64 hex chars)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/utils/Helpers.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH;;GAEG;AACU,QAAA,IAAI,GAAG;IAClB;;OAEG;IACH,QAAQ,EAAE,CAAC;IAEX;;OAEG;IACH,cAAc,EAAE,MAAO;IAEvB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAuB;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAClC,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,QAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,SAA0B,EAAE,QAAQ,GAAG,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/utils/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,12 +52,12 @@ export interface IPFSClientConfig {
|
|
|
52
52
|
*/
|
|
53
53
|
timeout?: number;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
*Security: Maximum content size in bytes
|
|
56
56
|
* Default: 50MB (50 * 1024 * 1024)
|
|
57
57
|
*/
|
|
58
58
|
maxSize?: number;
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
60
|
+
*Security: Allowed URL protocols
|
|
61
61
|
* Default: ['http:', 'https:'] (http for localhost, https for remote)
|
|
62
62
|
*/
|
|
63
63
|
allowedProtocols?: string[];
|
|
@@ -86,7 +86,7 @@ export declare const IPFS_CONFIGS: {
|
|
|
86
86
|
* IPFS HTTP Client Implementation
|
|
87
87
|
* Uses ipfs-http-client library
|
|
88
88
|
*
|
|
89
|
-
*
|
|
89
|
+
*Security: Now includes URL and size validation
|
|
90
90
|
*/
|
|
91
91
|
export declare class IPFSHTTPClientImpl implements IPFSClient {
|
|
92
92
|
private clientPromise;
|
|
@@ -98,7 +98,7 @@ export declare class IPFSHTTPClientImpl implements IPFSClient {
|
|
|
98
98
|
/**
|
|
99
99
|
* Create IPFS client
|
|
100
100
|
*
|
|
101
|
-
*
|
|
101
|
+
*Security: Validates URL and adds size limits
|
|
102
102
|
*
|
|
103
103
|
* @param config - IPFS client configuration
|
|
104
104
|
* @throws Error if URL is invalid or blocked
|
|
@@ -106,13 +106,13 @@ export declare class IPFSHTTPClientImpl implements IPFSClient {
|
|
|
106
106
|
constructor(config?: IPFSClientConfig);
|
|
107
107
|
private getClient;
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
109
|
+
*Security: Validate IPFS endpoint URL
|
|
110
110
|
*/
|
|
111
111
|
private validateUrl;
|
|
112
112
|
/**
|
|
113
113
|
* Upload data to IPFS
|
|
114
114
|
*
|
|
115
|
-
*
|
|
115
|
+
*Security: Validates size before upload
|
|
116
116
|
*
|
|
117
117
|
* @param data - JSON string or buffer
|
|
118
118
|
* @returns CIDv1 string (base32)
|
|
@@ -127,7 +127,7 @@ export declare class IPFSHTTPClientImpl implements IPFSClient {
|
|
|
127
127
|
/**
|
|
128
128
|
* Retrieve content from IPFS
|
|
129
129
|
*
|
|
130
|
-
*
|
|
130
|
+
*Security: Validates size during retrieval
|
|
131
131
|
*
|
|
132
132
|
* @param cid - IPFS CID
|
|
133
133
|
* @returns Content as string
|
package/dist/utils/IPFSClient.js
CHANGED
|
@@ -36,13 +36,13 @@ exports.IPFS_CONFIGS = {
|
|
|
36
36
|
* IPFS HTTP Client Implementation
|
|
37
37
|
* Uses ipfs-http-client library
|
|
38
38
|
*
|
|
39
|
-
*
|
|
39
|
+
*Security: Now includes URL and size validation
|
|
40
40
|
*/
|
|
41
41
|
class IPFSHTTPClientImpl {
|
|
42
42
|
/**
|
|
43
43
|
* Create IPFS client
|
|
44
44
|
*
|
|
45
|
-
*
|
|
45
|
+
*Security: Validates URL and adds size limits
|
|
46
46
|
*
|
|
47
47
|
* @param config - IPFS client configuration
|
|
48
48
|
* @throws Error if URL is invalid or blocked
|
|
@@ -50,7 +50,7 @@ class IPFSHTTPClientImpl {
|
|
|
50
50
|
constructor(config = {}) {
|
|
51
51
|
this.clientPromise = null;
|
|
52
52
|
const url = config.url || 'http://localhost:5001';
|
|
53
|
-
//
|
|
53
|
+
// Security: Validate URL
|
|
54
54
|
this.validateUrl(url, config.allowLocalhost ?? false, config.allowedProtocols);
|
|
55
55
|
this.config = {
|
|
56
56
|
url,
|
|
@@ -84,7 +84,7 @@ class IPFSHTTPClientImpl {
|
|
|
84
84
|
return this.clientPromise;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
87
|
+
*Security: Validate IPFS endpoint URL
|
|
88
88
|
*/
|
|
89
89
|
validateUrl(url, allowLocalhost, allowedProtocols) {
|
|
90
90
|
let parsed;
|
|
@@ -120,7 +120,7 @@ class IPFSHTTPClientImpl {
|
|
|
120
120
|
/**
|
|
121
121
|
* Upload data to IPFS
|
|
122
122
|
*
|
|
123
|
-
*
|
|
123
|
+
*Security: Validates size before upload
|
|
124
124
|
*
|
|
125
125
|
* @param data - JSON string or buffer
|
|
126
126
|
* @returns CIDv1 string (base32)
|
|
@@ -130,7 +130,7 @@ class IPFSHTTPClientImpl {
|
|
|
130
130
|
try {
|
|
131
131
|
const client = await this.getClient();
|
|
132
132
|
const content = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
|
|
133
|
-
//
|
|
133
|
+
// Security: Check size before upload
|
|
134
134
|
if (content.length > this.config.maxSize) {
|
|
135
135
|
throw new Error(`Content too large: ${content.length} bytes exceeds maximum of ${this.config.maxSize} bytes`);
|
|
136
136
|
}
|
|
@@ -162,7 +162,7 @@ class IPFSHTTPClientImpl {
|
|
|
162
162
|
/**
|
|
163
163
|
* Retrieve content from IPFS
|
|
164
164
|
*
|
|
165
|
-
*
|
|
165
|
+
*Security: Validates size during retrieval
|
|
166
166
|
*
|
|
167
167
|
* @param cid - IPFS CID
|
|
168
168
|
* @returns Content as string
|
|
@@ -175,7 +175,7 @@ class IPFSHTTPClientImpl {
|
|
|
175
175
|
let totalLength = 0;
|
|
176
176
|
for await (const chunk of client.cat(cid)) {
|
|
177
177
|
totalLength += chunk.length;
|
|
178
|
-
//
|
|
178
|
+
// Security: Check size during streaming to prevent DoS
|
|
179
179
|
if (totalLength > this.config.maxSize) {
|
|
180
180
|
throw new Error(`Content too large: ${totalLength}+ bytes exceeds maximum of ${this.config.maxSize} bytes. ` +
|
|
181
181
|
`Consider increasing maxSize in IPFSClientConfig if this is expected.`);
|
|
@@ -225,7 +225,7 @@ class IPFSHTTPClientImpl {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
exports.IPFSHTTPClientImpl = IPFSHTTPClientImpl;
|
|
228
|
-
//
|
|
228
|
+
// Security: Default security settings
|
|
229
229
|
IPFSHTTPClientImpl.DEFAULT_MAX_SIZE = 50 * 1024 * 1024; // 50MB
|
|
230
230
|
IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS = ['http:', 'https:'];
|
|
231
231
|
IPFSHTTPClientImpl.BLOCKED_HOSTS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qCAAqC;AAIrC,IAAI,mBAAmB,GAAiC,IAAI,CAAC;AAE7D,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,kFAAkF;QAClF,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAA6D,CAAC;QACxI,mBAAmB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AA4ED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE,uBAAuB;QAC5B,cAAc,EAAE,IAAI,EAAE,wCAAwC;KAC/D;IACD,MAAM,EAAE;QACN,GAAG,EAAE,oCAAoC;QACzC,iEAAiE;KAClE;IACD,MAAM,EAAE;QACN,GAAG,EAAE,0BAA0B;QAC/B,iEAAiE;KAClE;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAa,kBAAkB;IAc7B;;;;;;;OAOG;IACH,YAAY,SAA2B,EAAE;QArBjC,kBAAa,GAAkC,IAAI,CAAC;QAsB1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,uBAAuB,CAAC;QAElD,
|
|
1
|
+
{"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/Logger.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logger - Structured Logging Framework for ACTP SDK
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
*Security: Comprehensive logging with:
|
|
5
5
|
* - Log levels (debug, info, warn, error)
|
|
6
6
|
* - Structured metadata
|
|
7
7
|
* - Sensitive data filtering
|
|
@@ -92,7 +92,7 @@ export declare class Logger {
|
|
|
92
92
|
/**
|
|
93
93
|
* Filter sensitive data from metadata
|
|
94
94
|
*
|
|
95
|
-
*
|
|
95
|
+
*Security: Uses separate pattern arrays for keys and values.
|
|
96
96
|
* Key patterns have no /g flag (used with .test()).
|
|
97
97
|
* Value patterns are strings converted to fresh RegExp instances per call.
|
|
98
98
|
*/
|
|
@@ -100,7 +100,7 @@ export declare class Logger {
|
|
|
100
100
|
/**
|
|
101
101
|
* Redact sensitive patterns from a string value
|
|
102
102
|
*
|
|
103
|
-
*
|
|
103
|
+
*Security: Creates fresh RegExp instances with /gi flag
|
|
104
104
|
* for each call, avoiding lastIndex state pollution.
|
|
105
105
|
*/
|
|
106
106
|
private redactSensitiveValues;
|
|
@@ -128,7 +128,7 @@ export declare const sdkLogger: Logger;
|
|
|
128
128
|
/**
|
|
129
129
|
* Metrics/monitoring hook interface
|
|
130
130
|
*
|
|
131
|
-
*
|
|
131
|
+
*Security: Metrics and monitoring hooks
|
|
132
132
|
*/
|
|
133
133
|
export interface MetricsHook {
|
|
134
134
|
/** Called when a transaction is created */
|
package/dist/utils/Logger.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Logger - Structured Logging Framework for ACTP SDK
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
*Security: Comprehensive logging with:
|
|
6
6
|
* - Log levels (debug, info, warn, error)
|
|
7
7
|
* - Structured metadata
|
|
8
8
|
* - Sensitive data filtering
|
|
@@ -15,7 +15,7 @@ exports.sdkMetrics = exports.MetricsCollector = exports.sdkLogger = exports.Logg
|
|
|
15
15
|
/**
|
|
16
16
|
* Sensitive key name patterns (for checking object keys)
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
*Security: NO GLOBAL FLAG on patterns used with .test()
|
|
19
19
|
* Global regex maintains lastIndex state, causing alternating match/no-match
|
|
20
20
|
* on consecutive calls, potentially leaking sensitive data intermittently.
|
|
21
21
|
*/
|
|
@@ -31,7 +31,7 @@ const SENSITIVE_KEY_PATTERNS = [
|
|
|
31
31
|
/**
|
|
32
32
|
* Sensitive value patterns (for redacting from string values)
|
|
33
33
|
*
|
|
34
|
-
*
|
|
34
|
+
*Security: These are PATTERN STRINGS that get converted
|
|
35
35
|
* to fresh RegExp instances with /g flag for each replace() call.
|
|
36
36
|
* This avoids lastIndex state pollution between calls.
|
|
37
37
|
*/
|
|
@@ -142,14 +142,14 @@ class Logger {
|
|
|
142
142
|
/**
|
|
143
143
|
* Filter sensitive data from metadata
|
|
144
144
|
*
|
|
145
|
-
*
|
|
145
|
+
*Security: Uses separate pattern arrays for keys and values.
|
|
146
146
|
* Key patterns have no /g flag (used with .test()).
|
|
147
147
|
* Value patterns are strings converted to fresh RegExp instances per call.
|
|
148
148
|
*/
|
|
149
149
|
filterSensitiveData(obj) {
|
|
150
150
|
const filtered = {};
|
|
151
151
|
for (const [key, value] of Object.entries(obj)) {
|
|
152
|
-
//
|
|
152
|
+
// Security: Check if key matches sensitive pattern
|
|
153
153
|
// Using patterns without /g flag - safe to use with .test()
|
|
154
154
|
const isSensitiveKey = SENSITIVE_KEY_PATTERNS.some((pattern) => pattern.test(key));
|
|
155
155
|
if (isSensitiveKey) {
|
|
@@ -161,7 +161,7 @@ class Logger {
|
|
|
161
161
|
filtered[key] = this.filterSensitiveData(value);
|
|
162
162
|
}
|
|
163
163
|
else if (Array.isArray(value)) {
|
|
164
|
-
//
|
|
164
|
+
// Security: Also filter arrays
|
|
165
165
|
filtered[key] = value.map((item) => {
|
|
166
166
|
if (typeof item === 'string') {
|
|
167
167
|
return this.redactSensitiveValues(item);
|
|
@@ -173,7 +173,7 @@ class Logger {
|
|
|
173
173
|
});
|
|
174
174
|
}
|
|
175
175
|
else if (typeof value === 'string') {
|
|
176
|
-
//
|
|
176
|
+
// Security: Redact sensitive patterns from values
|
|
177
177
|
filtered[key] = this.redactSensitiveValues(value);
|
|
178
178
|
}
|
|
179
179
|
else {
|
|
@@ -185,7 +185,7 @@ class Logger {
|
|
|
185
185
|
/**
|
|
186
186
|
* Redact sensitive patterns from a string value
|
|
187
187
|
*
|
|
188
|
-
*
|
|
188
|
+
*Security: Creates fresh RegExp instances with /gi flag
|
|
189
189
|
* for each call, avoiding lastIndex state pollution.
|
|
190
190
|
*/
|
|
191
191
|
redactSensitiveValues(value) {
|
package/dist/utils/Logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Tracks nonces per DID + message type for AIP-4 delivery proofs
|
|
4
4
|
* Reference: AIP-4 §3.2 (nonce field requirement)
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Security notes:
|
|
7
7
|
* - C-2: Added atomic nonce allocation with locking
|
|
8
8
|
* - H-1: Added persistent nonce storage option
|
|
9
9
|
* - H-5: Added nonce upper bound validation
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* Maximum allowed nonce value.
|
|
13
|
-
*
|
|
13
|
+
*Security: Prevents nonce overflow attacks.
|
|
14
14
|
* Using Number.MAX_SAFE_INTEGER (2^53 - 1) to ensure safe JavaScript integer operations.
|
|
15
15
|
*/
|
|
16
16
|
export declare const MAX_NONCE_VALUE: number;
|
|
@@ -46,7 +46,7 @@ export interface NonceManager {
|
|
|
46
46
|
* In-Memory Nonce Manager
|
|
47
47
|
* Simple implementation using Map for per-message-type nonce tracking
|
|
48
48
|
*
|
|
49
|
-
*
|
|
49
|
+
* Security notes:
|
|
50
50
|
* - C-2: Added atomic getAndIncrementNonce() to prevent race conditions
|
|
51
51
|
* - H-5: Added nonce upper bound validation
|
|
52
52
|
*
|
|
@@ -64,7 +64,7 @@ export declare class InMemoryNonceManager implements NonceManager {
|
|
|
64
64
|
*/
|
|
65
65
|
constructor(initialNonces?: Record<string, number>);
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
*Security: Acquire lock for message type
|
|
68
68
|
* Ensures atomic nonce operations.
|
|
69
69
|
*
|
|
70
70
|
* FIXED: Previous implementation had a deadlock bug where:
|
|
@@ -75,7 +75,7 @@ export declare class InMemoryNonceManager implements NonceManager {
|
|
|
75
75
|
*/
|
|
76
76
|
private acquireLock;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
78
|
+
*Security: Release lock for message type
|
|
79
79
|
*
|
|
80
80
|
* FIXED: Now properly resolves the Promise before deleting,
|
|
81
81
|
* so any waiting acquireLock() calls can proceed.
|
|
@@ -88,7 +88,7 @@ export declare class InMemoryNonceManager implements NonceManager {
|
|
|
88
88
|
*/
|
|
89
89
|
getNextNonce(messageType: string): number;
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
91
|
+
*Security: Atomic get-and-increment nonce
|
|
92
92
|
* Returns the next nonce and records it atomically to prevent race conditions.
|
|
93
93
|
*
|
|
94
94
|
* @param messageType - Message type identifier
|
|
@@ -204,8 +204,8 @@ export declare class DIDScopedNonceManager implements NonceManager {
|
|
|
204
204
|
/**
|
|
205
205
|
* File-based Nonce Manager for Persistent Storage
|
|
206
206
|
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
207
|
+
*Security: Persists nonces to disk to survive process restarts.
|
|
208
|
+
*Security: File locking to prevent concurrent write corruption.
|
|
209
209
|
* Uses atomic file writes (temp file + rename) for crash safety.
|
|
210
210
|
*
|
|
211
211
|
* @module utils/NonceManager
|
|
@@ -228,7 +228,7 @@ export declare class FileBasedNonceManager implements NonceManager {
|
|
|
228
228
|
/**
|
|
229
229
|
* Save nonces to file atomically with file locking
|
|
230
230
|
*
|
|
231
|
-
*
|
|
231
|
+
*Security: File locking prevents concurrent write corruption
|
|
232
232
|
*/
|
|
233
233
|
private saveToFile;
|
|
234
234
|
getNextNonce(messageType: string): number;
|