@agirails/sdk 2.0.4 → 2.2.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 +536 -87
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +8 -0
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/StandardAdapter.d.ts +10 -5
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +19 -6
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/config/networks.d.ts +9 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +25 -10
- package/dist/config/networks.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/level0/provide.d.ts.map +1 -1
- package/dist/level0/provide.js +2 -1
- package/dist/level0/provide.js.map +1 -1
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +11 -3
- package/dist/level1/Agent.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +7 -5
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/DIDResolver.js +1 -1
- package/dist/protocol/DIDResolver.js.map +1 -1
- package/dist/protocol/EASHelper.d.ts.map +1 -1
- package/dist/protocol/EASHelper.js +2 -3
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts.map +1 -1
- package/dist/protocol/MessageSigner.js +8 -8
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +7 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +38 -22
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/IACTPRuntime.d.ts +15 -0
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +7 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +15 -4
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +5 -2
- package/dist/runtime/types/MockState.d.ts.map +1 -1
- package/dist/runtime/types/MockState.js.map +1 -1
- package/dist/storage/ArchiveBundleBuilder.d.ts +150 -0
- package/dist/storage/ArchiveBundleBuilder.d.ts.map +1 -0
- package/dist/storage/ArchiveBundleBuilder.js +468 -0
- package/dist/storage/ArchiveBundleBuilder.js.map +1 -0
- package/dist/storage/ArweaveClient.d.ts +271 -0
- package/dist/storage/ArweaveClient.d.ts.map +1 -0
- package/dist/storage/ArweaveClient.js +761 -0
- package/dist/storage/ArweaveClient.js.map +1 -0
- package/dist/storage/FilebaseClient.d.ts +193 -0
- package/dist/storage/FilebaseClient.d.ts.map +1 -0
- package/dist/storage/FilebaseClient.js +643 -0
- package/dist/storage/FilebaseClient.js.map +1 -0
- package/dist/storage/index.d.ts +47 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +64 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/types.d.ts +291 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +18 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/types/state.d.ts +5 -4
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/state.js +10 -9
- package/dist/types/state.js.map +1 -1
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +5 -2
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/NonceManager.d.ts.map +1 -1
- package/dist/utils/NonceManager.js +3 -2
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/UsedAttestationTracker.d.ts.map +1 -1
- package/dist/utils/UsedAttestationTracker.js +3 -3
- package/dist/utils/UsedAttestationTracker.js.map +1 -1
- package/dist/utils/circuitBreaker.d.ts +136 -0
- package/dist/utils/circuitBreaker.d.ts.map +1 -0
- package/dist/utils/circuitBreaker.js +253 -0
- package/dist/utils/circuitBreaker.js.map +1 -0
- package/dist/utils/retry.d.ts +120 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +260 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/validation.d.ts +100 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +248 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +14 -2
- package/src/adapters/BasicAdapter.ts +11 -0
- package/src/adapters/StandardAdapter.ts +26 -6
- package/src/config/networks.ts +34 -10
- package/src/index.ts +54 -0
- package/src/level0/provide.ts +2 -1
- package/src/level1/Agent.ts +13 -3
- package/src/protocol/ACTPKernel.ts +7 -5
- package/src/protocol/DIDResolver.ts +1 -1
- package/src/protocol/EASHelper.ts +2 -5
- package/src/protocol/MessageSigner.ts +8 -14
- package/src/runtime/BlockchainRuntime.ts +39 -45
- package/src/runtime/IACTPRuntime.ts +16 -0
- package/src/runtime/MockRuntime.ts +16 -4
- package/src/runtime/types/MockState.ts +5 -2
- package/src/storage/ArchiveBundleBuilder.ts +563 -0
- package/src/storage/ArweaveClient.ts +945 -0
- package/src/storage/FilebaseClient.ts +790 -0
- package/src/storage/index.ts +96 -0
- package/src/storage/types.ts +348 -0
- package/src/types/state.ts +10 -9
- package/src/utils/IPFSClient.ts +5 -4
- package/src/utils/NonceManager.ts +3 -2
- package/src/utils/UsedAttestationTracker.ts +3 -5
- package/src/utils/circuitBreaker.ts +324 -0
- package/src/utils/fsSafe.ts +5 -0
- package/src/utils/retry.ts +365 -0
- package/src/utils/validation.ts +295 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonceManager.js","sourceRoot":"","sources":["../../src/utils/NonceManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NonceManager.js","sourceRoot":"","sources":["../../src/utils/NonceManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,qCAAgF;AAChF,qCAAqC;AAErC;;;;GAIG;AACU,QAAA,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAkCvD;;;;;;;;;;;;GAYG;AACH,MAAa,oBAAoB;IAM/B;;;OAGG;IACH,YAAY,aAAsC;QAT1C,WAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;QAChD,wDAAwD;QACxD,kEAAkE;QAC1D,UAAK,GAAiE,IAAI,GAAG,EAAE,CAAC;QAOtF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC7D,8CAA8C;gBAC9C,IAAI,KAAK,GAAG,uBAAe,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,QAAQ,WAAW,kCAAkC,uBAAe,EAAE,CAC7F,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC3C,4CAA4C;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,CAAC,OAAO,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChD,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,WAAmB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,4BAA4B;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB;QAC1D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,WAAmB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;QAEzB,wCAAwC;QACxC,IAAI,IAAI,GAAG,uBAAe,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,kCAAkC,uBAAe,IAAI;gBACvF,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;YAEzB,wCAAwC;YACxC,IAAI,IAAI,GAAG,uBAAe,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,kCAAkC,uBAAe,EAAE,CACtF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,WAAmB,EAAE,KAAa;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAElD,wCAAwC;QACxC,IAAI,KAAK,GAAG,uBAAe,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,kCAAkC,uBAAe,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,gDAAgD,KAAK,gBAAgB,OAAO,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,WAAmB;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAxKD,oDAwKC;AAED;;;;GAIG;AACH,MAAa,qBAAqB;IAIhC;;;;OAIG;IACH,YAAY,GAAW,EAAE,aAAsC;QARvD,WAAM,GAAqC,IAAI,GAAG,EAAE,CAAC;QAS3D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAEtB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC7D,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,WAAmB,EAAE,KAAa;QAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,WAAmB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,GAAW,EAAE,WAAmB;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAW,EAAE,WAAmB,EAAE,KAAa;QAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhD,4BAA4B;QAC5B,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,yCAAyC,GAAG,eAAe,KAAK,gBAAgB,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,GAAW,EAAE,WAAmB;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAW,EAAE,WAAmB;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,MAAM,MAAM,GAA2C,EAAE,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AApJD,sDAoJC;AAED;;;;;;;;GAQG;AACH,MAAa,qBAAqB;IAOhC;;;OAGG;IACH,YAAY,cAAsB;QAChC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,kEAAkE;QAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE3C,gCAAgC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,IAAA,sBAAa,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEvD,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,sDAAsD;YACtD,IAAA,8BAAqB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErC,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;YACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,uBAAuB,mBAAmB,GAAG,IAAI,GAAG,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CACrF,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACtE,OAAO,IAA8B,CAAC;QACxC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,+CAA+C;YAC/C,MAAM,IAAI,KAAK,CACb,qEAAqE;gBACnE,wBAAwB,IAAI,CAAC,QAAQ,YAAY,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC;QAExC,gFAAgF;QAChF,IAAA,uBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3C,2DAA2D;QAC3D,IAAI,OAAO,GAAiC,IAAI,CAAC;QACjD,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChD,KAAK,EAAE,KAAK,EAAE,mDAAmD;gBACjE,OAAO,EAAE;oBACP,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,GAAG;iBAChB;aACF,CAAC,CAAC;YAEH,mCAAmC;YACnC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;gBAC7D,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8BAA8B;YAC9B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpE,kDAAkD;QAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAC,WAAmB,EAAE,KAAa;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,kBAAS,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,WAAmB;QAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,6CAA6C;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,kBAAS,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AA1JD,sDA0JC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,kBAAkB,CAChC,OAIC;IAED,iDAAiD;IACjD,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAjBD,gDAiBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsedAttestationTracker.d.ts","sourceRoot":"","sources":["../../src/utils/UsedAttestationTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"UsedAttestationTracker.d.ts","sourceRoot":"","sources":["../../src/utils/UsedAttestationTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;OAQG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAErE;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAE5E,OAAO,CAAC,gBAAgB,CAAkC;IAG1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;OAGG;gBACS,OAAO,GAAE,MAAe;IAOpC;;;;;;;;OAQG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE;;;;;OAKG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IA4B9D;;;;;;;OAOG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAc7D;;;;;;;OAOG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAgBpE;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAItC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAMhD;AAED;;;;;;;GAOG;AACH,qBAAa,+BAAgC,YAAW,uBAAuB;IAC7E,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,QAAQ,CAAmC;gBAEvC,cAAc,EAAE,MAAM;IAiBlC,OAAO,CAAC,YAAY;IA6BpB;;;;;OAKG;YACW,UAAU;IAgDxB;;;;OAIG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASzE;;;OAGG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAU9D,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI7D,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpE,KAAK,IAAI,IAAI;CAMd;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,CAAC,EAAE,MAAM,GACtB,uBAAuB,CAKzB"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.createUsedAttestationTracker = exports.FileBasedUsedAttestationTracker = exports.InMemoryUsedAttestationTracker = void 0;
|
|
16
16
|
const fsSafe_1 = require("./fsSafe");
|
|
17
|
+
const Logger_1 = require("./Logger");
|
|
17
18
|
/**
|
|
18
19
|
* In-Memory Used Attestation Tracker
|
|
19
20
|
*
|
|
@@ -150,8 +151,7 @@ class InMemoryUsedAttestationTracker {
|
|
|
150
151
|
cleanupOldEntries(_maxAgeHours) {
|
|
151
152
|
// In-memory tracker doesn't track timestamps
|
|
152
153
|
// This is a placeholder for future enhancement
|
|
153
|
-
|
|
154
|
-
'Consider using FileBasedUsedAttestationTracker for time-based cleanup.');
|
|
154
|
+
Logger_1.sdkLogger.warn('cleanupOldEntries not implemented for InMemoryUsedAttestationTracker - use FileBasedUsedAttestationTracker');
|
|
155
155
|
return 0;
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -275,7 +275,7 @@ class FileBasedUsedAttestationTracker {
|
|
|
275
275
|
const result = this.inMemory.recordUsageSync(attestationUID, txId);
|
|
276
276
|
if (result) {
|
|
277
277
|
this.saveToFile().catch((err) => {
|
|
278
|
-
|
|
278
|
+
Logger_1.sdkLogger.error('Failed to save attestation tracker state', { error: err instanceof Error ? err.message : String(err) });
|
|
279
279
|
});
|
|
280
280
|
}
|
|
281
281
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsedAttestationTracker.js","sourceRoot":"","sources":["../../src/utils/UsedAttestationTracker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,qCAAgF;
|
|
1
|
+
{"version":3,"file":"UsedAttestationTracker.js","sourceRoot":"","sources":["../../src/utils/UsedAttestationTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit Breaker - Gateway Health Tracking (Retry Amplification Protection)
|
|
3
|
+
*
|
|
4
|
+
* Implements the Circuit Breaker pattern for storage gateways:
|
|
5
|
+
* - Tracks consecutive failures per gateway
|
|
6
|
+
* - "Opens" circuit after threshold failures (blocks requests)
|
|
7
|
+
* - Auto-resets after cooldown period
|
|
8
|
+
*
|
|
9
|
+
* This prevents retry amplification attacks where a malicious/failing
|
|
10
|
+
* gateway causes excessive retries.
|
|
11
|
+
*
|
|
12
|
+
* @module utils/circuitBreaker
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Circuit state
|
|
16
|
+
*/
|
|
17
|
+
export type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
|
|
18
|
+
/**
|
|
19
|
+
* Circuit breaker configuration
|
|
20
|
+
*/
|
|
21
|
+
export interface CircuitBreakerConfig {
|
|
22
|
+
/** Number of failures before opening circuit (default: 5) */
|
|
23
|
+
failureThreshold?: number;
|
|
24
|
+
/** Cooldown period in ms before attempting reset (default: 60000 = 1 min) */
|
|
25
|
+
resetTimeoutMs?: number;
|
|
26
|
+
/** Time window in ms for counting failures (default: 300000 = 5 min) */
|
|
27
|
+
failureWindowMs?: number;
|
|
28
|
+
/** Number of successes in half-open to close circuit (default: 2) */
|
|
29
|
+
successThreshold?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Circuit Breaker for gateway health management
|
|
33
|
+
*
|
|
34
|
+
* Usage:
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const circuitBreaker = new GatewayCircuitBreaker();
|
|
37
|
+
*
|
|
38
|
+
* // Before making request
|
|
39
|
+
* if (!circuitBreaker.isHealthy(gatewayUrl)) {
|
|
40
|
+
* throw new Error('Gateway circuit open');
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* try {
|
|
44
|
+
* const result = await fetchFromGateway(gatewayUrl);
|
|
45
|
+
* circuitBreaker.recordSuccess(gatewayUrl);
|
|
46
|
+
* return result;
|
|
47
|
+
* } catch (error) {
|
|
48
|
+
* circuitBreaker.recordFailure(gatewayUrl);
|
|
49
|
+
* throw error;
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare class GatewayCircuitBreaker {
|
|
54
|
+
private readonly health;
|
|
55
|
+
private readonly config;
|
|
56
|
+
private halfOpenSuccesses;
|
|
57
|
+
constructor(config?: CircuitBreakerConfig);
|
|
58
|
+
/**
|
|
59
|
+
* Check if gateway is healthy (circuit closed or half-open)
|
|
60
|
+
*
|
|
61
|
+
* @param url - Gateway URL
|
|
62
|
+
* @returns true if requests should be allowed
|
|
63
|
+
*/
|
|
64
|
+
isHealthy(url: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Get current circuit state for gateway
|
|
67
|
+
*
|
|
68
|
+
* @param url - Gateway URL
|
|
69
|
+
* @returns Circuit state
|
|
70
|
+
*/
|
|
71
|
+
getState(url: string): CircuitState;
|
|
72
|
+
/**
|
|
73
|
+
* Record a successful request
|
|
74
|
+
*
|
|
75
|
+
* @param url - Gateway URL
|
|
76
|
+
*/
|
|
77
|
+
recordSuccess(url: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Record a failed request
|
|
80
|
+
*
|
|
81
|
+
* @param url - Gateway URL
|
|
82
|
+
*/
|
|
83
|
+
recordFailure(url: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Reset circuit for gateway (force close)
|
|
86
|
+
*
|
|
87
|
+
* @param url - Gateway URL
|
|
88
|
+
*/
|
|
89
|
+
reset(url: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Reset all circuits
|
|
92
|
+
*/
|
|
93
|
+
resetAll(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Get health status for all tracked gateways
|
|
96
|
+
*
|
|
97
|
+
* @returns Map of gateway URL to health info
|
|
98
|
+
*/
|
|
99
|
+
getHealthStatus(): Map<string, {
|
|
100
|
+
state: CircuitState;
|
|
101
|
+
failures: number;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Get failure count for gateway
|
|
105
|
+
*
|
|
106
|
+
* @param url - Gateway URL
|
|
107
|
+
* @returns Number of consecutive failures
|
|
108
|
+
*/
|
|
109
|
+
getFailureCount(url: string): number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Default global circuit breaker instance
|
|
113
|
+
*
|
|
114
|
+
* Use this for simple cases where a single circuit breaker is sufficient.
|
|
115
|
+
* For more control, create your own GatewayCircuitBreaker instance.
|
|
116
|
+
*/
|
|
117
|
+
export declare const globalCircuitBreaker: GatewayCircuitBreaker;
|
|
118
|
+
/**
|
|
119
|
+
* Wrap an async operation with circuit breaker protection
|
|
120
|
+
*
|
|
121
|
+
* @param url - Gateway URL to track
|
|
122
|
+
* @param operation - Async operation to execute
|
|
123
|
+
* @param circuitBreaker - Circuit breaker instance (default: global)
|
|
124
|
+
* @returns Operation result
|
|
125
|
+
* @throws Error if circuit is open, or operation error
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const result = await withCircuitBreaker(
|
|
130
|
+
* 'https://ipfs.filebase.io',
|
|
131
|
+
* () => fetch(url).then(r => r.json())
|
|
132
|
+
* );
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare function withCircuitBreaker<T>(url: string, operation: () => Promise<T>, circuitBreaker?: GatewayCircuitBreaker): Promise<T>;
|
|
136
|
+
//# sourceMappingURL=circuitBreaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuitBreaker.d.ts","sourceRoot":"","sources":["../../src/utils/circuitBreaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAgB3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,MAAM,GAAE,oBAAyB;IAS7C;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK/B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IA6BnC;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAsBhC;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAuChC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;;;OAIG;IACH,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAazE;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAGrC;AAMD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,uBAA8B,CAAC;AAMhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,cAAc,GAAE,qBAA4C,GAC3D,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Circuit Breaker - Gateway Health Tracking (Retry Amplification Protection)
|
|
4
|
+
*
|
|
5
|
+
* Implements the Circuit Breaker pattern for storage gateways:
|
|
6
|
+
* - Tracks consecutive failures per gateway
|
|
7
|
+
* - "Opens" circuit after threshold failures (blocks requests)
|
|
8
|
+
* - Auto-resets after cooldown period
|
|
9
|
+
*
|
|
10
|
+
* This prevents retry amplification attacks where a malicious/failing
|
|
11
|
+
* gateway causes excessive retries.
|
|
12
|
+
*
|
|
13
|
+
* @module utils/circuitBreaker
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.withCircuitBreaker = exports.globalCircuitBreaker = exports.GatewayCircuitBreaker = void 0;
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Constants
|
|
19
|
+
// ============================================================================
|
|
20
|
+
const DEFAULT_FAILURE_THRESHOLD = 5;
|
|
21
|
+
const DEFAULT_RESET_TIMEOUT_MS = 60000; // 1 minute
|
|
22
|
+
const DEFAULT_FAILURE_WINDOW_MS = 300000; // 5 minutes
|
|
23
|
+
const DEFAULT_SUCCESS_THRESHOLD = 2;
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// GatewayCircuitBreaker Class
|
|
26
|
+
// ============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Circuit Breaker for gateway health management
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const circuitBreaker = new GatewayCircuitBreaker();
|
|
33
|
+
*
|
|
34
|
+
* // Before making request
|
|
35
|
+
* if (!circuitBreaker.isHealthy(gatewayUrl)) {
|
|
36
|
+
* throw new Error('Gateway circuit open');
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* try {
|
|
40
|
+
* const result = await fetchFromGateway(gatewayUrl);
|
|
41
|
+
* circuitBreaker.recordSuccess(gatewayUrl);
|
|
42
|
+
* return result;
|
|
43
|
+
* } catch (error) {
|
|
44
|
+
* circuitBreaker.recordFailure(gatewayUrl);
|
|
45
|
+
* throw error;
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
class GatewayCircuitBreaker {
|
|
50
|
+
constructor(config = {}) {
|
|
51
|
+
this.health = new Map();
|
|
52
|
+
this.halfOpenSuccesses = new Map();
|
|
53
|
+
this.config = {
|
|
54
|
+
failureThreshold: config.failureThreshold ?? DEFAULT_FAILURE_THRESHOLD,
|
|
55
|
+
resetTimeoutMs: config.resetTimeoutMs ?? DEFAULT_RESET_TIMEOUT_MS,
|
|
56
|
+
failureWindowMs: config.failureWindowMs ?? DEFAULT_FAILURE_WINDOW_MS,
|
|
57
|
+
successThreshold: config.successThreshold ?? DEFAULT_SUCCESS_THRESHOLD
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check if gateway is healthy (circuit closed or half-open)
|
|
62
|
+
*
|
|
63
|
+
* @param url - Gateway URL
|
|
64
|
+
* @returns true if requests should be allowed
|
|
65
|
+
*/
|
|
66
|
+
isHealthy(url) {
|
|
67
|
+
const state = this.getState(url);
|
|
68
|
+
return state !== 'OPEN';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get current circuit state for gateway
|
|
72
|
+
*
|
|
73
|
+
* @param url - Gateway URL
|
|
74
|
+
* @returns Circuit state
|
|
75
|
+
*/
|
|
76
|
+
getState(url) {
|
|
77
|
+
const health = this.health.get(url);
|
|
78
|
+
if (!health) {
|
|
79
|
+
return 'CLOSED';
|
|
80
|
+
}
|
|
81
|
+
// Check if circuit should transition from OPEN to HALF_OPEN
|
|
82
|
+
if (health.state === 'OPEN') {
|
|
83
|
+
const timeSinceOpen = Date.now() - (health.openedAt || 0);
|
|
84
|
+
if (timeSinceOpen >= this.config.resetTimeoutMs) {
|
|
85
|
+
// Transition to half-open
|
|
86
|
+
health.state = 'HALF_OPEN';
|
|
87
|
+
this.halfOpenSuccesses.set(url, 0);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Check if failures have expired (outside window)
|
|
91
|
+
if (health.state === 'CLOSED') {
|
|
92
|
+
const timeSinceLastFailure = Date.now() - health.lastFailure;
|
|
93
|
+
if (timeSinceLastFailure >= this.config.failureWindowMs) {
|
|
94
|
+
// Reset failure count
|
|
95
|
+
health.failures = 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return health.state;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Record a successful request
|
|
102
|
+
*
|
|
103
|
+
* @param url - Gateway URL
|
|
104
|
+
*/
|
|
105
|
+
recordSuccess(url) {
|
|
106
|
+
const health = this.health.get(url);
|
|
107
|
+
if (!health) {
|
|
108
|
+
return; // No failures recorded, nothing to do
|
|
109
|
+
}
|
|
110
|
+
if (health.state === 'HALF_OPEN') {
|
|
111
|
+
// Count successes in half-open state
|
|
112
|
+
const successes = (this.halfOpenSuccesses.get(url) || 0) + 1;
|
|
113
|
+
this.halfOpenSuccesses.set(url, successes);
|
|
114
|
+
if (successes >= this.config.successThreshold) {
|
|
115
|
+
// Enough successes - close circuit
|
|
116
|
+
this.reset(url);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (health.state === 'CLOSED') {
|
|
120
|
+
// Reset failure count on success
|
|
121
|
+
health.failures = 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Record a failed request
|
|
126
|
+
*
|
|
127
|
+
* @param url - Gateway URL
|
|
128
|
+
*/
|
|
129
|
+
recordFailure(url) {
|
|
130
|
+
const now = Date.now();
|
|
131
|
+
let health = this.health.get(url);
|
|
132
|
+
if (!health) {
|
|
133
|
+
health = {
|
|
134
|
+
failures: 0,
|
|
135
|
+
lastFailure: now,
|
|
136
|
+
state: 'CLOSED'
|
|
137
|
+
};
|
|
138
|
+
this.health.set(url, health);
|
|
139
|
+
}
|
|
140
|
+
// If in half-open state, any failure opens circuit again
|
|
141
|
+
if (health.state === 'HALF_OPEN') {
|
|
142
|
+
health.state = 'OPEN';
|
|
143
|
+
health.openedAt = now;
|
|
144
|
+
health.failures = this.config.failureThreshold; // Keep at threshold
|
|
145
|
+
this.halfOpenSuccesses.delete(url);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// Check if previous failures have expired
|
|
149
|
+
const timeSinceLastFailure = now - health.lastFailure;
|
|
150
|
+
if (timeSinceLastFailure >= this.config.failureWindowMs) {
|
|
151
|
+
health.failures = 0;
|
|
152
|
+
}
|
|
153
|
+
// Increment failure count
|
|
154
|
+
health.failures++;
|
|
155
|
+
health.lastFailure = now;
|
|
156
|
+
// Check if threshold reached
|
|
157
|
+
if (health.failures >= this.config.failureThreshold) {
|
|
158
|
+
health.state = 'OPEN';
|
|
159
|
+
health.openedAt = now;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Reset circuit for gateway (force close)
|
|
164
|
+
*
|
|
165
|
+
* @param url - Gateway URL
|
|
166
|
+
*/
|
|
167
|
+
reset(url) {
|
|
168
|
+
this.health.delete(url);
|
|
169
|
+
this.halfOpenSuccesses.delete(url);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Reset all circuits
|
|
173
|
+
*/
|
|
174
|
+
resetAll() {
|
|
175
|
+
this.health.clear();
|
|
176
|
+
this.halfOpenSuccesses.clear();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get health status for all tracked gateways
|
|
180
|
+
*
|
|
181
|
+
* @returns Map of gateway URL to health info
|
|
182
|
+
*/
|
|
183
|
+
getHealthStatus() {
|
|
184
|
+
const status = new Map();
|
|
185
|
+
for (const [url, health] of this.health) {
|
|
186
|
+
status.set(url, {
|
|
187
|
+
state: this.getState(url), // This updates state if needed
|
|
188
|
+
failures: health.failures
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return status;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get failure count for gateway
|
|
195
|
+
*
|
|
196
|
+
* @param url - Gateway URL
|
|
197
|
+
* @returns Number of consecutive failures
|
|
198
|
+
*/
|
|
199
|
+
getFailureCount(url) {
|
|
200
|
+
return this.health.get(url)?.failures || 0;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.GatewayCircuitBreaker = GatewayCircuitBreaker;
|
|
204
|
+
// ============================================================================
|
|
205
|
+
// Singleton Instance
|
|
206
|
+
// ============================================================================
|
|
207
|
+
/**
|
|
208
|
+
* Default global circuit breaker instance
|
|
209
|
+
*
|
|
210
|
+
* Use this for simple cases where a single circuit breaker is sufficient.
|
|
211
|
+
* For more control, create your own GatewayCircuitBreaker instance.
|
|
212
|
+
*/
|
|
213
|
+
exports.globalCircuitBreaker = new GatewayCircuitBreaker();
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// Helper Functions
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Wrap an async operation with circuit breaker protection
|
|
219
|
+
*
|
|
220
|
+
* @param url - Gateway URL to track
|
|
221
|
+
* @param operation - Async operation to execute
|
|
222
|
+
* @param circuitBreaker - Circuit breaker instance (default: global)
|
|
223
|
+
* @returns Operation result
|
|
224
|
+
* @throws Error if circuit is open, or operation error
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* const result = await withCircuitBreaker(
|
|
229
|
+
* 'https://ipfs.filebase.io',
|
|
230
|
+
* () => fetch(url).then(r => r.json())
|
|
231
|
+
* );
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
async function withCircuitBreaker(url, operation, circuitBreaker = exports.globalCircuitBreaker) {
|
|
235
|
+
// Check if circuit allows request
|
|
236
|
+
if (!circuitBreaker.isHealthy(url)) {
|
|
237
|
+
const state = circuitBreaker.getState(url);
|
|
238
|
+
throw new Error(`Circuit breaker OPEN for gateway: ${url}. ` +
|
|
239
|
+
`State: ${state}, Failures: ${circuitBreaker.getFailureCount(url)}. ` +
|
|
240
|
+
`Please wait for cooldown period before retrying.`);
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const result = await operation();
|
|
244
|
+
circuitBreaker.recordSuccess(url);
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
circuitBreaker.recordFailure(url);
|
|
249
|
+
throw error;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.withCircuitBreaker = withCircuitBreaker;
|
|
253
|
+
//# sourceMappingURL=circuitBreaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuitBreaker.js","sourceRoot":"","sources":["../../src/utils/circuitBreaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry Utility - Exponential Backoff with Jitter (P1-2)
|
|
3
|
+
*
|
|
4
|
+
* Implements retry logic for storage operations with:
|
|
5
|
+
* - Exponential backoff (doubles delay each attempt)
|
|
6
|
+
* - Random jitter (prevents thundering herd)
|
|
7
|
+
* - Maximum retry limit
|
|
8
|
+
* - Configurable retry conditions
|
|
9
|
+
*
|
|
10
|
+
* @module utils/retry
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Retry configuration options
|
|
14
|
+
*/
|
|
15
|
+
export interface RetryOptions {
|
|
16
|
+
/** Maximum number of retry attempts (default: 3) */
|
|
17
|
+
maxAttempts?: number;
|
|
18
|
+
/** Initial delay in milliseconds (default: 1000) */
|
|
19
|
+
initialDelayMs?: number;
|
|
20
|
+
/** Maximum delay in milliseconds (default: 30000) */
|
|
21
|
+
maxDelayMs?: number;
|
|
22
|
+
/** Multiplier for exponential backoff (default: 2) */
|
|
23
|
+
backoffMultiplier?: number;
|
|
24
|
+
/** Jitter factor 0-1 (default: 0.1 = ±10%) */
|
|
25
|
+
jitterFactor?: number;
|
|
26
|
+
/** Function to determine if error is retryable (default: built-in check) */
|
|
27
|
+
isRetryable?: (error: unknown) => boolean;
|
|
28
|
+
/** Callback for each retry attempt (for logging) */
|
|
29
|
+
onRetry?: (attempt: number, error: unknown, delayMs: number) => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Result of retry operation
|
|
33
|
+
*/
|
|
34
|
+
export interface RetryResult<T> {
|
|
35
|
+
/** Operation result (if successful) */
|
|
36
|
+
result?: T;
|
|
37
|
+
/** Final error (if all retries failed) */
|
|
38
|
+
error?: unknown;
|
|
39
|
+
/** Number of attempts made */
|
|
40
|
+
attempts: number;
|
|
41
|
+
/** Total time spent (including delays) */
|
|
42
|
+
totalTimeMs: number;
|
|
43
|
+
/** Whether operation succeeded */
|
|
44
|
+
success: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Default function to determine if error is retryable
|
|
48
|
+
*
|
|
49
|
+
* @param error - Error to check
|
|
50
|
+
* @returns True if error should trigger retry
|
|
51
|
+
*/
|
|
52
|
+
export declare function isRetryableError(error: unknown): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Calculate delay with exponential backoff and jitter
|
|
55
|
+
*
|
|
56
|
+
* @param attempt - Current attempt number (1-based)
|
|
57
|
+
* @param options - Retry options
|
|
58
|
+
* @returns Delay in milliseconds
|
|
59
|
+
*/
|
|
60
|
+
export declare function calculateBackoffDelay(attempt: number, options?: RetryOptions): number;
|
|
61
|
+
/**
|
|
62
|
+
* Execute async operation with retry logic
|
|
63
|
+
*
|
|
64
|
+
* Implements exponential backoff with jitter for handling transient failures.
|
|
65
|
+
* Particularly useful for storage operations that may fail due to:
|
|
66
|
+
* - Rate limiting
|
|
67
|
+
* - Network timeouts
|
|
68
|
+
* - Temporary service unavailability
|
|
69
|
+
*
|
|
70
|
+
* @param operation - Async function to execute
|
|
71
|
+
* @param options - Retry configuration
|
|
72
|
+
* @returns Promise resolving to operation result or throwing final error
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* // Basic usage
|
|
77
|
+
* const result = await withRetry(
|
|
78
|
+
* () => client.uploadJSON(data),
|
|
79
|
+
* { maxAttempts: 3 }
|
|
80
|
+
* );
|
|
81
|
+
*
|
|
82
|
+
* // With logging
|
|
83
|
+
* const result = await withRetry(
|
|
84
|
+
* () => client.downloadJSON(cid),
|
|
85
|
+
* {
|
|
86
|
+
* maxAttempts: 5,
|
|
87
|
+
* onRetry: (attempt, error, delay) => {
|
|
88
|
+
* console.log(`Retry ${attempt}, waiting ${delay}ms:`, error);
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
* );
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function withRetry<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
95
|
+
/**
|
|
96
|
+
* Execute async operation with retry logic, returning detailed result
|
|
97
|
+
*
|
|
98
|
+
* Unlike `withRetry`, this function never throws - it returns a result object
|
|
99
|
+
* with success/failure status and metadata.
|
|
100
|
+
*
|
|
101
|
+
* @param operation - Async function to execute
|
|
102
|
+
* @param options - Retry configuration
|
|
103
|
+
* @returns Promise resolving to detailed result object
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const result = await withRetryResult(
|
|
108
|
+
* () => client.uploadJSON(data),
|
|
109
|
+
* { maxAttempts: 3 }
|
|
110
|
+
* );
|
|
111
|
+
*
|
|
112
|
+
* if (result.success) {
|
|
113
|
+
* console.log('Uploaded:', result.result);
|
|
114
|
+
* } else {
|
|
115
|
+
* console.error(`Failed after ${result.attempts} attempts:`, result.error);
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export declare function withRetryResult<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<RetryResult<T>>;
|
|
120
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAE1C,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IAEpB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AA0CD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA0CxD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,MAAM,CAmBR;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CA8CZ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA2DzB"}
|