hyperttp 0.2.4 → 0.2.6
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 +129 -16
- package/dist/Hyperttp/Core/CacheManager.d.ts +63 -40
- package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/CacheManager.js +64 -62
- package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +55 -33
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +315 -211
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
- package/dist/Hyperttp/Core/InterceptorManager.d.ts +11 -11
- package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/InterceptorManager.js +10 -10
- package/dist/Hyperttp/Core/InterceptorManager.js.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.d.ts +33 -42
- package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.js +165 -59
- package/dist/Hyperttp/Core/MetricsManager.js.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.d.ts +6 -4
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.js +42 -34
- package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.d.ts +29 -36
- package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.js +100 -36
- package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts +4 -2
- package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.js +10 -3
- package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
- package/dist/Hyperttp/Core/RequestExecutor.d.ts +7 -34
- package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestExecutor.js +121 -114
- package/dist/Hyperttp/Core/RequestExecutor.js.map +1 -1
- package/dist/Hyperttp/Core/RequestProfiler.d.ts +10 -0
- package/dist/Hyperttp/Core/RequestProfiler.d.ts.map +1 -0
- package/dist/Hyperttp/Core/RequestProfiler.js +55 -0
- package/dist/Hyperttp/Core/RequestProfiler.js.map +1 -0
- package/dist/Hyperttp/Core/ResponseConverter.d.ts +23 -0
- package/dist/Hyperttp/Core/ResponseConverter.d.ts.map +1 -0
- package/dist/Hyperttp/Core/ResponseConverter.js +369 -0
- package/dist/Hyperttp/Core/ResponseConverter.js.map +1 -0
- package/dist/Hyperttp/Core/index.d.ts +8 -10
- package/dist/Hyperttp/Core/index.d.ts.map +1 -1
- package/dist/Hyperttp/Core/index.js +28 -15
- package/dist/Hyperttp/Core/index.js.map +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
- package/dist/Hyperttp/index.d.ts +1 -3
- package/dist/Hyperttp/index.d.ts.map +1 -1
- package/dist/Hyperttp/index.js +8 -8
- package/dist/Hyperttp/index.js.map +1 -1
- package/dist/Types/cache.d.ts +10 -0
- package/dist/Types/cache.d.ts.map +1 -0
- package/dist/Types/cache.js +3 -0
- package/dist/Types/cache.js.map +1 -0
- package/dist/Types/errors.d.ts +15 -0
- package/dist/Types/errors.d.ts.map +1 -0
- package/dist/Types/errors.js +34 -0
- package/dist/Types/errors.js.map +1 -0
- package/dist/Types/http-client.d.ts +39 -0
- package/dist/Types/http-client.d.ts.map +1 -0
- package/dist/Types/http-client.js +3 -0
- package/dist/Types/http-client.js.map +1 -0
- package/dist/Types/http.d.ts +5 -0
- package/dist/Types/http.d.ts.map +1 -0
- package/dist/Types/http.js +3 -0
- package/dist/Types/http.js.map +1 -0
- package/dist/Types/index.d.ts +12 -127
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Types/index.js +12 -39
- package/dist/Types/index.js.map +1 -1
- package/dist/Types/interceptors.d.ts +13 -0
- package/dist/Types/interceptors.d.ts.map +1 -0
- package/dist/Types/interceptors.js +3 -0
- package/dist/Types/interceptors.js.map +1 -0
- package/dist/Types/metrics.d.ts +90 -0
- package/dist/Types/metrics.d.ts.map +1 -0
- package/dist/Types/metrics.js +3 -0
- package/dist/Types/metrics.js.map +1 -0
- package/dist/Types/options.d.ts +233 -0
- package/dist/Types/options.d.ts.map +1 -0
- package/dist/Types/options.js +3 -0
- package/dist/Types/options.js.map +1 -0
- package/dist/Types/queue.d.ts +8 -0
- package/dist/Types/queue.d.ts.map +1 -0
- package/dist/Types/queue.js +3 -0
- package/dist/Types/queue.js.map +1 -0
- package/dist/Types/request.d.ts +148 -9
- package/dist/Types/request.d.ts.map +1 -1
- package/dist/Types/response.d.ts +28 -0
- package/dist/Types/response.d.ts.map +1 -0
- package/dist/Types/response.js +3 -0
- package/dist/Types/response.js.map +1 -0
- package/dist/Types/stream.d.ts +39 -0
- package/dist/Types/stream.d.ts.map +1 -0
- package/dist/Types/stream.js +3 -0
- package/dist/Types/stream.js.map +1 -0
- package/dist/Types/url-extractor.d.ts +10 -0
- package/dist/Types/url-extractor.d.ts.map +1 -0
- package/dist/Types/url-extractor.js +3 -0
- package/dist/Types/url-extractor.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts +0 -35
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts.map +0 -1
- package/dist/Hyperttp/Core/ResponseTransformer.js +0 -171
- package/dist/Hyperttp/Core/ResponseTransformer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClientImproved.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":";;AACA,qDAAuD;AAEvD,uDAAiD;AACjD,uDAAiD;AACjD,qDAA+C;AAC/C,2DAAqD;AACrD,2DAAqD;AACrD,mEAA6D;AAC7D,qEAA+D;AAC/D,6DAAuD;AAYvD,mDAAuD;AAEvD;;;;GAIG;AACH,MAAqB,kBAAkB;IAC7B,KAAK,CAAQ;IACb,OAAO,CAAoB;IAE3B,KAAK,CAAgB;IACrB,KAAK,CAAgB;IACrB,OAAO,CAAe;IACtB,cAAc,CAAiB;IAE/B,YAAY,CAAqB;IACjC,WAAW,CAAsB;IACjC,QAAQ,CAAkB;IAElC;;;OAGG;IACK,QAAQ,GAAG,IAAI,GAAG,EAGvB,CAAC;IACI,cAAc,GAA2B,EAAE,CAAC;IAEpD,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,cAAc,GAAG,IAAI,kCAAc,CAAC;YACvC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,0CAAkB,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,4CAAmB,CACxC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CACpB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,8BAAY,CAAC;gBAC5B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,8BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,IAAI,4BAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAW,CAAC;YAC3B,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,KAAK;YAEvB,OAAO,EAAE;gBACP,OAAO,EACL,oIAAoI;aACvI;YAED,aAAa;YACb,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,oCAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;YACjE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAQ;YAC9B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;YACpC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAgB;YAC9C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAa;YACxC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAmB;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG;YACpB,MAAM,EAAE,mCAAmC;YAC3C,iBAAiB,EAAE,mBAAmB;YACtC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAU;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,eAAe,CAC3B,MAAc,EACd,GAAqB,EACrB,QAAQ,GAAG,IAAI,EACf,eAA6B,MAAM;QAEnC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,0BAAe,CACvB,yBAAyB,EACzB,cAAc,EACd,GAAG,EACH,SAAS,EACT,GAAG,EACH,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,GACP,MAAM,KAAK,KAAK;YACd,CAAC,CAAC,OAAO,GAAG,EAAE;YACd,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE7D,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YAC5C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,OAAO,CAAC;QAEnE,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAEtD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,IAAgB,EAAE;YAC3C,MAAM,OAAO,GAAmB,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAC7C,MAAM,EACN,GAAG,EACH,OAAO,EACP,IAAI,EACJ,OAAO,EACP,kBAAkB,CAAC,MAAM,CAC1B,CAAC;gBAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CACzD,WAAW,CAAC,IAAI,CACjB,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CACjD,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,EACpC,YAAY,CACb,CAAC;gBAEF,IAAI,MAAM,KAAK,MAAM;oBACnB,OAAO;wBACL,MAAM,EAAE,WAAW,CAAC,MAAM;wBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;qBACtB,CAAC;gBAEX,IACE,MAAM,KAAK,KAAK;oBAChB,QAAQ;oBACR,IAAI,CAAC,KAAK;oBACV,MAAM,KAAK,SAAS,EACpB,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO,MAAW,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,UAAU;oBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;YAC3C,CAAC,CAAC,aAAa,EAAE,CAAC;QAEtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CACD,GAA8B,EAC9B,eAA6B,MAAM;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CACF,GAA8B,EAC9B,IAAU,EACV,eAA6B,MAAM;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,eAAe,CAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,GAAG,CACD,GAA8B,EAC9B,IAAU,EACV,eAA6B,MAAM;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,eAAe,CAAI,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,MAAM,CACJ,GAA8B,EAC9B,eAA6B,MAAM;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CACH,GAA8B,EAC9B,IAAU,EACV,eAA6B,MAAM;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,eAAe,CAAI,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAU,GAAW;QAC1B,OAAO,IAAI,kCAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CACnB,MAAM,EACN,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CACpD,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpD,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,OAAQ,IAAI,CAAC,KAAa,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACtD,MAAO,IAAI,CAAC,KAAa,CAAC,OAAO,EAAE,CAAC;gBACtC,CAAC;qBAAM,IAAI,OAAQ,IAAI,CAAC,KAAa,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBAC3D,MAAO,IAAI,CAAC,KAAa,CAAC,KAAK,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CACR,GAA8B;QAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAGnD,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,GAA8B;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAErE,MAAM,GAAG,GAAG,cAAc,GAAG,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QAEjD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAEtD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAC7C,KAAK,EACL,GAAG,EACH,OAAO,EACP,IAAI,EACJ,SAAS,EACT,kBAAkB,CAAC,MAAM,CAC1B,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;gBAC1B,UAAU,EAAE,kBAAkB;aAC/B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,UAAU;oBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC,CAAC;YAEF,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEtC,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,GAAG,EAAE,WAAW,CAAC,GAAG;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU;gBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAON,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;YAEhC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAEpC,cAAc,EACZ,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK;gBACpC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAa,CAAC,WAAW,IAAI,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YAEP,cAAc,EACZ,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK;gBACpC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAa,CAAC,WAAW,IAAI,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YAEP,gBAAgB,EACd,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO;gBAC1C,CAAC,CAAC,CAAE,IAAI,CAAC,OAAe,CAAC,YAAY,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,GAA8B,EAC9B,IAAU;QAEV,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO;gBACL,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG;gBACjB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;gBACvB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;aACvB,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,mBAAmB,CAAC,GAAuB;QACjD,MAAM,QAAQ,GAA+B;YAC3C,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,cAAc;YACzB,gBAAgB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;YAC3C,QAAQ,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;YACvB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE;gBACZ,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,KAAK;gBACf,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;gBAChD,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAuB,CAAC;IACtD,CAAC;IAEO,kBAAkB,CAAC,MAAc,EAAE,GAAqB;QAC9D,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;QAChE,IAAI,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,eAAe,GAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACtC,CAAC;QAED,IACE,OAAO;YACP,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,EAC5B,CAAC;YACD,MAAM,WAAW,GAAG,CAClB,OAAO,CAAC,cAAc,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC;gBACvB,EAAE,CACH,CAAC,WAAW,EAAE,CAAC;YAEhB,IAAI,WAAW,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBAC9D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,MAAM,UAAU,GACd,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACpE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAElC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,cAAc,CAAC,GAAG,iCAAiC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACrE,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,GAAW,EAAE,MAAc;QACtD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,KAAK;YACb,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,OAAuB,EAAE,MAAc;QAC3D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QACvD,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,MAAM,EACN,uBAAuB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,EACtD;gBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,UAAU;aAC3B,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAuB,EAAE,KAAU;QACrD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QACvD,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,OAAO,EACP,mBAAmB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,EAClD;gBACE,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAzjBD,qCAyjBC"}
|
|
1
|
+
{"version":3,"file":"HttpClientImproved.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RequestInterceptor, ResponseInterceptor } from "../../Types";
|
|
1
|
+
import { RequestInterceptor, ResponseInterceptor } from "../../Types/interceptors";
|
|
2
2
|
/**
|
|
3
3
|
* @class InterceptorManager
|
|
4
4
|
* @en Manages registration and sequential execution of request and response interceptors.
|
|
@@ -10,20 +10,20 @@ export declare class InterceptorManager {
|
|
|
10
10
|
/**
|
|
11
11
|
* @en Adds a request interceptor to the chain.
|
|
12
12
|
* @ru Добавляет перехватчик запроса в цепочку.
|
|
13
|
-
* @param interceptor
|
|
13
|
+
* @param interceptor Function that modifies request config before execution.
|
|
14
14
|
*/
|
|
15
15
|
addRequest(interceptor: RequestInterceptor): void;
|
|
16
16
|
/**
|
|
17
17
|
* @en Adds a response interceptor to the chain.
|
|
18
18
|
* @ru Добавляет перехватчик ответа в цепочку.
|
|
19
|
-
* @param interceptor
|
|
19
|
+
* @param interceptor Function that modifies response after execution.
|
|
20
20
|
*/
|
|
21
21
|
addResponse(interceptor: ResponseInterceptor): void;
|
|
22
22
|
/**
|
|
23
23
|
* @en Sequentially applies all registered request interceptors.
|
|
24
|
-
* @ru Последовательно применяет все
|
|
25
|
-
* @param config
|
|
26
|
-
* @returns Modified request configuration.
|
|
24
|
+
* @ru Последовательно применяет все перехватчики к конфигурации запроса.
|
|
25
|
+
* @param config Initial request configuration.
|
|
26
|
+
* @returns Modified request configuration after all interceptors.
|
|
27
27
|
*/
|
|
28
28
|
applyRequest(config: {
|
|
29
29
|
url: string;
|
|
@@ -38,9 +38,9 @@ export declare class InterceptorManager {
|
|
|
38
38
|
}>;
|
|
39
39
|
/**
|
|
40
40
|
* @en Sequentially applies all registered response interceptors.
|
|
41
|
-
* @ru Последовательно применяет все
|
|
42
|
-
* @param response
|
|
43
|
-
* @returns Modified response
|
|
41
|
+
* @ru Последовательно применяет все перехватчики к ответу.
|
|
42
|
+
* @param response Raw HTTP response object.
|
|
43
|
+
* @returns Modified response after all interceptors.
|
|
44
44
|
*/
|
|
45
45
|
applyResponse(response: {
|
|
46
46
|
status: number;
|
|
@@ -54,8 +54,8 @@ export declare class InterceptorManager {
|
|
|
54
54
|
url: string;
|
|
55
55
|
}>;
|
|
56
56
|
/**
|
|
57
|
-
* @en
|
|
58
|
-
* @ru
|
|
57
|
+
* @en Removes all registered interceptors.
|
|
58
|
+
* @ru Очищает все зарегистрированные перехватчики.
|
|
59
59
|
*/
|
|
60
60
|
clear(): void;
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterceptorManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/InterceptorManager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"InterceptorManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/InterceptorManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,oBAAoB,CAA6B;IAEzD;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAInD;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;aAJM,MAAM;gBACH,MAAM;iBACL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM,GAAG,MAAM;;IAWxB;;;;;OAKG;IACG,aAAa,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb;gBAJS,MAAM;iBACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;cACtB,MAAM;aACP,MAAM;;IAWb;;;OAGG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -12,7 +12,7 @@ class InterceptorManager {
|
|
|
12
12
|
/**
|
|
13
13
|
* @en Adds a request interceptor to the chain.
|
|
14
14
|
* @ru Добавляет перехватчик запроса в цепочку.
|
|
15
|
-
* @param interceptor
|
|
15
|
+
* @param interceptor Function that modifies request config before execution.
|
|
16
16
|
*/
|
|
17
17
|
addRequest(interceptor) {
|
|
18
18
|
this.requestInterceptors.push(interceptor);
|
|
@@ -20,16 +20,16 @@ class InterceptorManager {
|
|
|
20
20
|
/**
|
|
21
21
|
* @en Adds a response interceptor to the chain.
|
|
22
22
|
* @ru Добавляет перехватчик ответа в цепочку.
|
|
23
|
-
* @param interceptor
|
|
23
|
+
* @param interceptor Function that modifies response after execution.
|
|
24
24
|
*/
|
|
25
25
|
addResponse(interceptor) {
|
|
26
26
|
this.responseInterceptors.push(interceptor);
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* @en Sequentially applies all registered request interceptors.
|
|
30
|
-
* @ru Последовательно применяет все
|
|
31
|
-
* @param config
|
|
32
|
-
* @returns Modified request configuration.
|
|
30
|
+
* @ru Последовательно применяет все перехватчики к конфигурации запроса.
|
|
31
|
+
* @param config Initial request configuration.
|
|
32
|
+
* @returns Modified request configuration after all interceptors.
|
|
33
33
|
*/
|
|
34
34
|
async applyRequest(config) {
|
|
35
35
|
let result = config;
|
|
@@ -40,9 +40,9 @@ class InterceptorManager {
|
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* @en Sequentially applies all registered response interceptors.
|
|
43
|
-
* @ru Последовательно применяет все
|
|
44
|
-
* @param response
|
|
45
|
-
* @returns Modified response
|
|
43
|
+
* @ru Последовательно применяет все перехватчики к ответу.
|
|
44
|
+
* @param response Raw HTTP response object.
|
|
45
|
+
* @returns Modified response after all interceptors.
|
|
46
46
|
*/
|
|
47
47
|
async applyResponse(response) {
|
|
48
48
|
let result = response;
|
|
@@ -52,8 +52,8 @@ class InterceptorManager {
|
|
|
52
52
|
return result;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
* @en
|
|
56
|
-
* @ru
|
|
55
|
+
* @en Removes all registered interceptors.
|
|
56
|
+
* @ru Очищает все зарегистрированные перехватчики.
|
|
57
57
|
*/
|
|
58
58
|
clear() {
|
|
59
59
|
this.requestInterceptors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterceptorManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/InterceptorManager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"InterceptorManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/InterceptorManager.ts"],"names":[],"mappings":";;;AAKA;;;;GAIG;AACH,MAAa,kBAAkB;IACrB,mBAAmB,GAAyB,EAAE,CAAC;IAC/C,oBAAoB,GAA0B,EAAE,CAAC;IAEzD;;;;OAIG;IACH,UAAU,CAAC,WAA+B;QACxC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,WAAgC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,MAKlB;QACC,IAAI,MAAM,GAAG,MAAM,CAAC;QAEpB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,QAKnB;QACC,IAAI,MAAM,GAAG,QAAQ,CAAC;QAEtB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;CACF;AAxED,gDAwEC"}
|
|
@@ -1,66 +1,51 @@
|
|
|
1
|
-
import { RequestMetrics } from "../../Types";
|
|
2
|
-
|
|
3
|
-
* @interface MetricsConfig
|
|
4
|
-
* @en Configuration for the metrics and circuit breaker behavior.
|
|
5
|
-
* @ru Конфигурация для метрик и поведения предохранителя (circuit breaker).
|
|
6
|
-
*/
|
|
7
|
-
export interface MetricsConfig {
|
|
8
|
-
/** * @en Maximum number of entries in history.
|
|
9
|
-
* @ru Максимальное количество записей в истории. (default: 1000)
|
|
10
|
-
*/
|
|
11
|
-
maxHistory?: number;
|
|
12
|
-
/** * @en Time to keep metrics in ms.
|
|
13
|
-
* @ru Время хранения метрик в миллисекундах. (default: 1 hour)
|
|
14
|
-
*/
|
|
15
|
-
ttl?: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @class MetricsManager
|
|
19
|
-
* @en Collects request statistics and manages Circuit Breaker states for hosts.
|
|
20
|
-
* @ru Собирает статистику запросов и управляет состояниями Circuit Breaker для хостов.
|
|
21
|
-
*/
|
|
1
|
+
import type { RequestMetrics } from "../../Types/metrics";
|
|
2
|
+
import { MetricsOptions } from "../../Types/options";
|
|
22
3
|
export declare class MetricsManager {
|
|
23
|
-
private history;
|
|
24
|
-
private hostStates;
|
|
4
|
+
private readonly history;
|
|
5
|
+
private readonly hostStates;
|
|
6
|
+
private readonly scopeDepth;
|
|
25
7
|
private readonly failureThreshold;
|
|
26
8
|
private readonly resetTimeout;
|
|
9
|
+
private readonly slowRequestMs;
|
|
10
|
+
private readonly weights;
|
|
27
11
|
private _totalBytesAccumulator;
|
|
28
|
-
constructor(config?:
|
|
12
|
+
constructor(config?: MetricsOptions);
|
|
29
13
|
/**
|
|
30
|
-
* @
|
|
31
|
-
* @
|
|
14
|
+
* @ru Извлекает scope (host + первый сегмент пути) для circuit breaker.
|
|
15
|
+
* @en Extracts scope (host + first path segment) for circuit breaker.
|
|
32
16
|
*/
|
|
33
17
|
private getScope;
|
|
18
|
+
private getOrCreateState;
|
|
34
19
|
/**
|
|
35
|
-
* @
|
|
36
|
-
* @
|
|
20
|
+
* @ru Проверяет, открыт ли circuit breaker для URL.
|
|
21
|
+
* @en Checks whether the circuit breaker is open for a URL.
|
|
22
|
+
*/
|
|
23
|
+
isCircuitOpen(url: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @ru Регистрирует метрику и обновляет состояние circuit breaker.
|
|
26
|
+
* @en Records request metrics and updates circuit breaker state.
|
|
37
27
|
*/
|
|
38
28
|
record(metrics: RequestMetrics & {
|
|
39
29
|
cacheHit?: boolean;
|
|
40
30
|
}): void;
|
|
41
31
|
/**
|
|
42
|
-
* @
|
|
43
|
-
* @
|
|
32
|
+
* @ru Получает метрику по ключу.
|
|
33
|
+
* @en Retrieves a metric entry by key.
|
|
44
34
|
*/
|
|
45
35
|
get(key: string): RequestMetrics | undefined;
|
|
46
36
|
/**
|
|
47
|
-
* @
|
|
48
|
-
* @
|
|
37
|
+
* @ru Возвращает все метрики.
|
|
38
|
+
* @en Returns all stored metrics.
|
|
49
39
|
*/
|
|
50
40
|
getAll(): RequestMetrics[];
|
|
51
41
|
/**
|
|
52
|
-
* @
|
|
53
|
-
* @ru Проверяет, "разомкнута" ли цепь для данного URL (предотвращает выполнение запроса).
|
|
54
|
-
*/
|
|
55
|
-
isCircuitOpen(url: string): boolean;
|
|
56
|
-
/**
|
|
42
|
+
* @ru Увеличивает счётчик полученных байтов.
|
|
57
43
|
* @en Increments total received bytes counter.
|
|
58
|
-
* @ru Увеличивает счетчик общего объема полученных байтов.
|
|
59
44
|
*/
|
|
60
45
|
recordBytes(bytes: number): void;
|
|
61
46
|
/**
|
|
62
|
-
* @
|
|
63
|
-
* @
|
|
47
|
+
* @ru Возвращает сводную статистику.
|
|
48
|
+
* @en Returns performance summary statistics.
|
|
64
49
|
*/
|
|
65
50
|
getSummary(): {
|
|
66
51
|
totalRequests: number;
|
|
@@ -70,11 +55,17 @@ export declare class MetricsManager {
|
|
|
70
55
|
errorCount: number;
|
|
71
56
|
maxDurationMs: number;
|
|
72
57
|
p99DurationMs: number;
|
|
58
|
+
openCircuits: number;
|
|
73
59
|
} | null;
|
|
74
60
|
/**
|
|
75
|
-
* @
|
|
76
|
-
* @
|
|
61
|
+
* @ru Очищает историю и состояния circuit breaker.
|
|
62
|
+
* @en Clears metrics history and circuit breaker states.
|
|
77
63
|
*/
|
|
78
64
|
clear(): void;
|
|
65
|
+
private storeMetrics;
|
|
66
|
+
private updateCircuit;
|
|
67
|
+
private getFailureWeight;
|
|
68
|
+
private percentile;
|
|
69
|
+
private getOpenCircuitCount;
|
|
79
70
|
}
|
|
80
71
|
//# sourceMappingURL=MetricsManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/MetricsManager.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricsManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/MetricsManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAE9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAE3E,OAAO,CAAC,sBAAsB,CAAK;gBAEvB,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,gBAAgB;IAkBxB;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgCnC;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAK9D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IA0B5C;;;OAGG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACH,UAAU;;;;;;;;;;IA8BV;;;OAGG;IACH,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,mBAAmB;CAO5B"}
|
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MetricsManager = void 0;
|
|
4
4
|
const lru_cache_1 = require("lru-cache");
|
|
5
|
-
/**
|
|
6
|
-
* @class MetricsManager
|
|
7
|
-
* @en Collects request statistics and manages Circuit Breaker states for hosts.
|
|
8
|
-
* @ru Собирает статистику запросов и управляет состояниями Circuit Breaker для хостов.
|
|
9
|
-
*/
|
|
10
5
|
class MetricsManager {
|
|
11
6
|
history;
|
|
12
7
|
hostStates = new Map();
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
scopeDepth;
|
|
9
|
+
failureThreshold;
|
|
10
|
+
resetTimeout;
|
|
11
|
+
slowRequestMs;
|
|
12
|
+
weights;
|
|
15
13
|
_totalBytesAccumulator = 0;
|
|
16
14
|
constructor(config) {
|
|
17
15
|
this.history = new lru_cache_1.LRUCache({
|
|
@@ -19,85 +17,125 @@ class MetricsManager {
|
|
|
19
17
|
ttl: config?.ttl ?? 1000 * 60 * 60,
|
|
20
18
|
ttlAutopurge: true,
|
|
21
19
|
});
|
|
20
|
+
this.scopeDepth = Math.max(1, config?.scopeDepth ?? 1);
|
|
21
|
+
this.failureThreshold = Math.max(1, config?.failureThreshold ?? 5);
|
|
22
|
+
this.resetTimeout = Math.max(1, config?.resetTimeout ?? 30_000);
|
|
23
|
+
this.slowRequestMs = Math.max(1, config?.slowRequestMs ?? 5_000);
|
|
24
|
+
this.weights = {
|
|
25
|
+
timeout: config?.weights?.timeout ?? 2,
|
|
26
|
+
serverError: config?.weights?.serverError ?? 1,
|
|
27
|
+
rateLimit: config?.weights?.rateLimit ?? 1.5,
|
|
28
|
+
slowRequest: config?.weights?.slowRequest ?? 0.5,
|
|
29
|
+
other: config?.weights?.other ?? 1,
|
|
30
|
+
};
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
33
|
+
* @ru Извлекает scope (host + первый сегмент пути) для circuit breaker.
|
|
34
|
+
* @en Extracts scope (host + first path segment) for circuit breaker.
|
|
26
35
|
*/
|
|
27
36
|
getScope(url) {
|
|
28
37
|
try {
|
|
29
38
|
const u = new URL(url);
|
|
30
|
-
|
|
31
|
-
|
|
39
|
+
const segments = u.pathname.split("/").filter(Boolean);
|
|
40
|
+
const scopedPath = segments.slice(0, this.scopeDepth).join("/");
|
|
41
|
+
return scopedPath ? `${u.host}/${scopedPath}` : u.host;
|
|
32
42
|
}
|
|
33
43
|
catch {
|
|
34
44
|
return "unknown";
|
|
35
45
|
}
|
|
36
46
|
}
|
|
47
|
+
getOrCreateState(scope) {
|
|
48
|
+
let state = this.hostStates.get(scope);
|
|
49
|
+
if (!state) {
|
|
50
|
+
state = {
|
|
51
|
+
state: "CLOSED",
|
|
52
|
+
failureScore: 0,
|
|
53
|
+
consecutiveFailures: 0,
|
|
54
|
+
lastFailureTime: 0,
|
|
55
|
+
lastTransitionTime: Date.now(),
|
|
56
|
+
probeInFlight: false,
|
|
57
|
+
};
|
|
58
|
+
this.hostStates.set(scope, state);
|
|
59
|
+
}
|
|
60
|
+
return state;
|
|
61
|
+
}
|
|
37
62
|
/**
|
|
38
|
-
* @
|
|
39
|
-
* @
|
|
63
|
+
* @ru Проверяет, открыт ли circuit breaker для URL.
|
|
64
|
+
* @en Checks whether the circuit breaker is open for a URL.
|
|
40
65
|
*/
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (!state) {
|
|
47
|
-
state = { consecutiveFailures: 0, lastFailureTime: 0 };
|
|
48
|
-
this.hostStates.set(host, state);
|
|
66
|
+
isCircuitOpen(url) {
|
|
67
|
+
const scope = this.getScope(url);
|
|
68
|
+
const state = this.getOrCreateState(scope);
|
|
69
|
+
if (state.state === "CLOSED") {
|
|
70
|
+
return false;
|
|
49
71
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
72
|
+
if (state.state === "OPEN") {
|
|
73
|
+
const elapsed = Date.now() - state.lastTransitionTime;
|
|
74
|
+
if (elapsed < this.resetTimeout) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
state.state = "HALF_OPEN";
|
|
78
|
+
state.probeInFlight = false;
|
|
79
|
+
state.lastTransitionTime = Date.now();
|
|
55
80
|
}
|
|
56
|
-
|
|
57
|
-
state.
|
|
81
|
+
if (state.state === "HALF_OPEN") {
|
|
82
|
+
if (state.probeInFlight) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
state.probeInFlight = true;
|
|
86
|
+
return false;
|
|
58
87
|
}
|
|
88
|
+
return false;
|
|
59
89
|
}
|
|
60
90
|
/**
|
|
61
|
-
* @
|
|
62
|
-
* @
|
|
91
|
+
* @ru Регистрирует метрику и обновляет состояние circuit breaker.
|
|
92
|
+
* @en Records request metrics and updates circuit breaker state.
|
|
63
93
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
94
|
+
record(metrics) {
|
|
95
|
+
this.storeMetrics(metrics);
|
|
96
|
+
this.updateCircuit(metrics);
|
|
66
97
|
}
|
|
67
98
|
/**
|
|
68
|
-
* @
|
|
69
|
-
* @
|
|
99
|
+
* @ru Получает метрику по ключу.
|
|
100
|
+
* @en Retrieves a metric entry by key.
|
|
70
101
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
get(key) {
|
|
103
|
+
const exact = this.history.get(key);
|
|
104
|
+
if (exact) {
|
|
105
|
+
return exact;
|
|
106
|
+
}
|
|
107
|
+
let latest;
|
|
108
|
+
let latestTs = -1;
|
|
109
|
+
for (const [entryKey, metric] of this.history.entries()) {
|
|
110
|
+
if (metric.url !== key) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const idx = entryKey.lastIndexOf(":");
|
|
114
|
+
const ts = idx >= 0 ? Number(entryKey.slice(idx + 1)) : 0;
|
|
115
|
+
if (ts >= latestTs) {
|
|
116
|
+
latestTs = ts;
|
|
117
|
+
latest = metric;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return latest;
|
|
73
121
|
}
|
|
74
122
|
/**
|
|
75
|
-
* @
|
|
76
|
-
* @
|
|
123
|
+
* @ru Возвращает все метрики.
|
|
124
|
+
* @en Returns all stored metrics.
|
|
77
125
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const state = this.hostStates.get(host);
|
|
81
|
-
if (!state)
|
|
82
|
-
return false;
|
|
83
|
-
if (state.consecutiveFailures >= this.failureThreshold) {
|
|
84
|
-
const timeSinceLastFailure = Date.now() - state.lastFailureTime;
|
|
85
|
-
// Если таймаут прошел, даем шанс (Half-Open), если нет — цепь разомкнута (Open)
|
|
86
|
-
return timeSinceLastFailure < this.resetTimeout;
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
126
|
+
getAll() {
|
|
127
|
+
return Array.from(this.history.values());
|
|
89
128
|
}
|
|
90
129
|
/**
|
|
130
|
+
* @ru Увеличивает счётчик полученных байтов.
|
|
91
131
|
* @en Increments total received bytes counter.
|
|
92
|
-
* @ru Увеличивает счетчик общего объема полученных байтов.
|
|
93
132
|
*/
|
|
94
133
|
recordBytes(bytes) {
|
|
95
|
-
|
|
96
|
-
this._totalBytesAccumulator = (this._totalBytesAccumulator || 0) + bytes;
|
|
134
|
+
this._totalBytesAccumulator += Math.max(0, bytes);
|
|
97
135
|
}
|
|
98
136
|
/**
|
|
99
|
-
* @
|
|
100
|
-
* @
|
|
137
|
+
* @ru Возвращает сводную статистику.
|
|
138
|
+
* @en Returns performance summary statistics.
|
|
101
139
|
*/
|
|
102
140
|
getSummary() {
|
|
103
141
|
const all = this.getAll();
|
|
@@ -108,14 +146,14 @@ class MetricsManager {
|
|
|
108
146
|
let totalDuration = 0;
|
|
109
147
|
let maxDur = 0;
|
|
110
148
|
for (const m of all) {
|
|
111
|
-
if (m.statusCode && m.statusCode
|
|
149
|
+
if ((m.statusCode ?? 0) < 400 && (m.statusCode ?? 0) !== 0)
|
|
112
150
|
successful++;
|
|
113
151
|
totalDuration += m.duration;
|
|
114
152
|
if (m.duration > maxDur)
|
|
115
153
|
maxDur = m.duration;
|
|
116
154
|
}
|
|
117
|
-
const durations = all.map((m) => m.duration)
|
|
118
|
-
const p99 =
|
|
155
|
+
const durations = all.map((m) => m.duration);
|
|
156
|
+
const p99 = this.percentile(durations, 99);
|
|
119
157
|
return {
|
|
120
158
|
totalRequests: total,
|
|
121
159
|
successRate: (successful / total) * 100,
|
|
@@ -124,17 +162,85 @@ class MetricsManager {
|
|
|
124
162
|
errorCount: total - successful,
|
|
125
163
|
maxDurationMs: maxDur,
|
|
126
164
|
p99DurationMs: p99,
|
|
165
|
+
openCircuits: this.getOpenCircuitCount(),
|
|
127
166
|
};
|
|
128
167
|
}
|
|
129
168
|
/**
|
|
130
|
-
* @
|
|
131
|
-
* @
|
|
169
|
+
* @ru Очищает историю и состояния circuit breaker.
|
|
170
|
+
* @en Clears metrics history and circuit breaker states.
|
|
132
171
|
*/
|
|
133
172
|
clear() {
|
|
134
173
|
this.history.clear();
|
|
135
174
|
this.hostStates.clear();
|
|
136
175
|
this._totalBytesAccumulator = 0;
|
|
137
176
|
}
|
|
177
|
+
storeMetrics(metrics) {
|
|
178
|
+
const key = `${metrics.method}:${metrics.url}:${Date.now()}`;
|
|
179
|
+
this.history.set(key, metrics);
|
|
180
|
+
}
|
|
181
|
+
updateCircuit(metrics) {
|
|
182
|
+
const scope = this.getScope(metrics.url);
|
|
183
|
+
const state = this.getOrCreateState(scope);
|
|
184
|
+
const failureWeight = this.getFailureWeight(metrics);
|
|
185
|
+
if (failureWeight > 0) {
|
|
186
|
+
state.failureScore += failureWeight;
|
|
187
|
+
state.consecutiveFailures += 1;
|
|
188
|
+
state.lastFailureTime = Date.now();
|
|
189
|
+
if (state.state === "HALF_OPEN" ||
|
|
190
|
+
state.failureScore >= this.failureThreshold) {
|
|
191
|
+
state.state = "OPEN";
|
|
192
|
+
state.probeInFlight = false;
|
|
193
|
+
state.lastTransitionTime = Date.now();
|
|
194
|
+
}
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
state.failureScore = 0;
|
|
198
|
+
state.consecutiveFailures = 0;
|
|
199
|
+
if (state.state === "HALF_OPEN" || state.state === "OPEN") {
|
|
200
|
+
state.state = "CLOSED";
|
|
201
|
+
state.probeInFlight = false;
|
|
202
|
+
state.lastTransitionTime = Date.now();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
getFailureWeight(metrics) {
|
|
206
|
+
const status = metrics.statusCode ?? 0;
|
|
207
|
+
if (status === 0) {
|
|
208
|
+
return this.weights.timeout;
|
|
209
|
+
}
|
|
210
|
+
if (status === 429) {
|
|
211
|
+
return this.weights.rateLimit;
|
|
212
|
+
}
|
|
213
|
+
if (status >= 500) {
|
|
214
|
+
return this.weights.serverError;
|
|
215
|
+
}
|
|
216
|
+
if (metrics.duration >= this.slowRequestMs) {
|
|
217
|
+
return this.weights.slowRequest;
|
|
218
|
+
}
|
|
219
|
+
if (status >= 400) {
|
|
220
|
+
return this.weights.other;
|
|
221
|
+
}
|
|
222
|
+
return 0;
|
|
223
|
+
}
|
|
224
|
+
percentile(arr, p) {
|
|
225
|
+
if (arr.length === 0)
|
|
226
|
+
return 0;
|
|
227
|
+
const sorted = [...arr].sort((a, b) => a - b);
|
|
228
|
+
const rank = (p / 100) * (sorted.length - 1);
|
|
229
|
+
const low = Math.floor(rank);
|
|
230
|
+
const high = Math.ceil(rank);
|
|
231
|
+
if (low === high)
|
|
232
|
+
return sorted[low];
|
|
233
|
+
const weight = rank - low;
|
|
234
|
+
return Math.round(sorted[low] * (1 - weight) + sorted[high] * weight);
|
|
235
|
+
}
|
|
236
|
+
getOpenCircuitCount() {
|
|
237
|
+
let count = 0;
|
|
238
|
+
for (const state of this.hostStates.values()) {
|
|
239
|
+
if (state.state === "OPEN")
|
|
240
|
+
count++;
|
|
241
|
+
}
|
|
242
|
+
return count;
|
|
243
|
+
}
|
|
138
244
|
}
|
|
139
245
|
exports.MetricsManager = MetricsManager;
|
|
140
246
|
//# sourceMappingURL=MetricsManager.js.map
|