@hyperttp/core 1.5.5 → 2.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.
Files changed (85) hide show
  1. package/Core/HyperCore.d.ts +176 -141
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +1 -1
  4. package/Core/HyperCore.js.map +3 -3
  5. package/README.md +260 -316
  6. package/defaultConfig.d.ts +9 -4
  7. package/defaultConfig.d.ts.map +1 -1
  8. package/defaultConfig.js +1 -1
  9. package/defaultConfig.js.map +2 -2
  10. package/index.d.ts +3 -0
  11. package/index.d.ts.map +1 -1
  12. package/index.js +1 -1
  13. package/index.js.map +2 -2
  14. package/package.json +39 -33
  15. package/protocols/manager.d.ts +31 -0
  16. package/protocols/manager.d.ts.map +1 -0
  17. package/protocols/manager.js +2 -0
  18. package/protocols/manager.js.map +7 -0
  19. package/protocols/rest/index.d.ts +9 -0
  20. package/protocols/rest/index.d.ts.map +1 -0
  21. package/protocols/rest/index.js +2 -0
  22. package/protocols/rest/index.js.map +7 -0
  23. package/protocols/rest/receiver.d.ts +31 -0
  24. package/protocols/rest/receiver.d.ts.map +1 -0
  25. package/protocols/rest/receiver.js +2 -0
  26. package/protocols/rest/receiver.js.map +7 -0
  27. package/protocols/rest/sender.d.ts +19 -0
  28. package/protocols/rest/sender.d.ts.map +1 -0
  29. package/protocols/rest/sender.js +2 -0
  30. package/protocols/rest/sender.js.map +7 -0
  31. package/protocols/rest/type.d.ts +71 -0
  32. package/protocols/rest/type.d.ts.map +1 -0
  33. package/protocols/rest/type.js +2 -0
  34. package/protocols/rest/type.js.map +7 -0
  35. package/rest.d.ts +2 -0
  36. package/rest.d.ts.map +1 -0
  37. package/rest.js +2 -0
  38. package/rest.js.map +7 -0
  39. package/transports/fetch.d.ts +24 -0
  40. package/transports/fetch.d.ts.map +1 -0
  41. package/transports/fetch.js +2 -0
  42. package/transports/fetch.js.map +7 -0
  43. package/transports/manager.d.ts +17 -80
  44. package/transports/manager.d.ts.map +1 -1
  45. package/transports/manager.js +1 -6
  46. package/transports/manager.js.map +3 -3
  47. package/utils/abort.d.ts +23 -0
  48. package/utils/abort.d.ts.map +1 -0
  49. package/utils/abort.js +2 -0
  50. package/utils/abort.js.map +7 -0
  51. package/utils/errors.d.ts +12 -2
  52. package/utils/errors.d.ts.map +1 -1
  53. package/utils/errors.js +1 -1
  54. package/utils/errors.js.map +3 -3
  55. package/utils/merge.d.ts.map +1 -1
  56. package/utils/merge.js +1 -1
  57. package/utils/merge.js.map +2 -2
  58. package/Core/RequestBuilder.d.ts +0 -32
  59. package/Core/RequestBuilder.d.ts.map +0 -1
  60. package/Core/RequestBuilder.js +0 -2
  61. package/Core/RequestBuilder.js.map +0 -7
  62. package/transports/browser.d.ts +0 -37
  63. package/transports/browser.d.ts.map +0 -1
  64. package/transports/browser.js +0 -2
  65. package/transports/browser.js.map +0 -7
  66. package/transports/node.d.ts +0 -33
  67. package/transports/node.d.ts.map +0 -1
  68. package/transports/node.js +0 -2
  69. package/transports/node.js.map +0 -7
  70. package/utils/normalize.d.ts +0 -35
  71. package/utils/normalize.d.ts.map +0 -1
  72. package/utils/normalize.js +0 -2
  73. package/utils/normalize.js.map +0 -7
  74. package/utils/pipeline.d.ts +0 -63
  75. package/utils/pipeline.d.ts.map +0 -1
  76. package/utils/pipeline.js +0 -2
  77. package/utils/pipeline.js.map +0 -7
  78. package/utils/response.d.ts +0 -113
  79. package/utils/response.d.ts.map +0 -1
  80. package/utils/response.js +0 -2
  81. package/utils/response.js.map +0 -7
  82. package/utils/retryUtils.d.ts +0 -17
  83. package/utils/retryUtils.d.ts.map +0 -1
  84. package/utils/retryUtils.js +0 -2
  85. package/utils/retryUtils.js.map +0 -7
@@ -1,2 +0,0 @@
1
- "use strict";const u=new Set([502,503,504]);export function calcDelay(e,t){const{baseDelay:n=1e3,maxDelay:r=1e4,jitter:o=!0}=t,c=Math.min(e,31),a=Math.min(n*Math.pow(2,c),r);if(!o)return a;const i=a*(.75+Math.random()*.5);return Math.min(Math.max(0,i),r)}export async function drainBody(e){if(!(!e||typeof e!="object"))try{const t=e;if(typeof t.dump=="function"){await t.dump();return}if(typeof t.destroy=="function"){t.destroy();return}if(typeof t.resume=="function"){t.resume();return}if(typeof t.cancel=="function"){await t.cancel();return}typeof t.getReader=="function"&&t.getReader().cancel()}catch{}}export function shouldRetry(e,t){const n=t.retryStatusCodes;return n!==void 0?n.length>0&&n.includes(e):u.has(e)}
2
- //# sourceMappingURL=retryUtils.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/retryUtils.ts"],
4
- "sourcesContent": ["import type { RetryOptions } from \"@hyperttp/types\";\n\n/**\n * @ru \u041A\u043E\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430 HTTP, \u043F\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u044B\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.\n * @en Default HTTP status codes that trigger retries when no explicit codes are provided.\n */\nconst DEFAULT_RETRY_STATUS_CODES = new Set<number>([502, 503, 504]);\n\n/**\n * @ru \u0412\u044B\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0443 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0439 \u043F\u043E\u043F\u044B\u0442\u043A\u043E\u0439 \u0441 \u044D\u043A\u0441\u043F\u043E\u043D\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0438 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u044B\u043C \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u043E\u043C.\n * @en Calculates the delay before a retry using exponential backoff and optional jitter.\n */\nexport function calcDelay(attempt: number, retryOptions: RetryOptions): number {\n const { baseDelay = 1000, maxDelay = 10000, jitter = true } = retryOptions;\n const safeAttempt = Math.min(attempt, 31);\n const base = Math.min(baseDelay * Math.pow(2, safeAttempt), maxDelay);\n if (!jitter) return base;\n const jittered = base * (0.75 + Math.random() * 0.5);\n return Math.min(Math.max(0, jittered), maxDelay);\n}\n\n/**\n * @ru \u041F\u044B\u0442\u0430\u0435\u0442\u0441\u044F \u043E\u0441\u0432\u043E\u0431\u043E\u0434\u0438\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441\u044B \u0442\u0435\u043B\u0430 \u043E\u0442\u0432\u0435\u0442\u0430, \u043D\u0435 \u0434\u043E\u0436\u0438\u0434\u0430\u044F\u0441\u044C \u043F\u043E\u043B\u043D\u043E\u0433\u043E \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u044F. \u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043C\u0435\u0442\u043E\u0434\u044B dump, resume, destroy.\n * @en Attempts to release response body resources without fully consuming it. Supports dump, resume, destroy methods.\n */\nexport async function drainBody(body: unknown): Promise<void> {\n if (!body || typeof body !== \"object\") return;\n try {\n const stream = body as Record<string, unknown>;\n\n if (typeof stream.dump === \"function\") {\n await (stream.dump as () => Promise<void>)();\n return;\n }\n\n if (typeof stream.destroy === \"function\") {\n (stream.destroy as () => void)();\n return;\n }\n\n if (typeof stream.resume === \"function\") {\n (stream.resume as () => void)();\n return;\n }\n\n if (typeof stream.cancel === \"function\") {\n await (stream.cancel as () => Promise<void>)();\n return;\n }\n\n if (typeof stream.getReader === \"function\") {\n const reader = (stream as unknown as ReadableStream).getReader();\n reader.cancel();\n }\n } catch {\n //\n }\n}\n\n/**\n * @ru \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u0443\u044E \u043F\u043E\u043F\u044B\u0442\u043A\u0443 \u0434\u043B\u044F \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n * @en Determines whether to retry for the given status code based on retry options.\n */\nexport function shouldRetry(status: number, retryOptions: RetryOptions): boolean {\n const codes = retryOptions.retryStatusCodes;\n if (codes !== undefined) {\n return codes.length > 0 && codes.includes(status);\n }\n return DEFAULT_RETRY_STATUS_CODES.has(status);\n}\n"],
5
- "mappings": "aAMA,MAAMA,EAA6B,IAAI,IAAY,CAAC,IAAK,IAAK,GAAG,CAAC,EAM5D,gBAAU,UAAUC,EAAiBC,EAA0B,CACnE,KAAM,CAAE,UAAAC,EAAY,IAAM,SAAAC,EAAW,IAAO,OAAAC,EAAS,EAAI,EAAKH,EACxDI,EAAc,KAAK,IAAIL,EAAS,EAAE,EAClCM,EAAO,KAAK,IAAIJ,EAAY,KAAK,IAAI,EAAGG,CAAW,EAAGF,CAAQ,EACpE,GAAI,CAACC,EAAQ,OAAOE,EACpB,MAAMC,EAAWD,GAAQ,IAAO,KAAK,OAAM,EAAK,IAChD,OAAO,KAAK,IAAI,KAAK,IAAI,EAAGC,CAAQ,EAAGJ,CAAQ,CACjD,CAMA,sBAAsB,UAAUK,EAAa,CAC3C,GAAI,GAACA,GAAQ,OAAOA,GAAS,UAC7B,GAAI,CACF,MAAMC,EAASD,EAEf,GAAI,OAAOC,EAAO,MAAS,WAAY,CACrC,MAAOA,EAAO,KAA4B,EAC1C,MACF,CAEA,GAAI,OAAOA,EAAO,SAAY,WAAY,CACvCA,EAAO,QAAsB,EAC9B,MACF,CAEA,GAAI,OAAOA,EAAO,QAAW,WAAY,CACtCA,EAAO,OAAqB,EAC7B,MACF,CAEA,GAAI,OAAOA,EAAO,QAAW,WAAY,CACvC,MAAOA,EAAO,OAA8B,EAC5C,MACF,CAEI,OAAOA,EAAO,WAAc,YACdA,EAAqC,UAAS,EACvD,OAAM,CAEjB,MAAQ,CAER,CACF,CAMM,gBAAU,YAAYC,EAAgBT,EAA0B,CACpE,MAAMU,EAAQV,EAAa,iBAC3B,OAAIU,IAAU,OACLA,EAAM,OAAS,GAAKA,EAAM,SAASD,CAAM,EAE3CX,EAA2B,IAAIW,CAAM,CAC9C",
6
- "names": ["DEFAULT_RETRY_STATUS_CODES", "attempt", "retryOptions", "baseDelay", "maxDelay", "jitter", "safeAttempt", "base", "jittered", "body", "stream", "status", "codes"]
7
- }