@bsv/wallet-toolbox 2.7.1 → 2.9.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 (104) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +22 -3
  3. package/docs/README.md +24 -23
  4. package/docs/local-first-chaintracks.md +129 -0
  5. package/out/src/index.mobile.d.ts +1 -0
  6. package/out/src/index.mobile.d.ts.map +1 -1
  7. package/out/src/index.mobile.js +1 -0
  8. package/out/src/index.mobile.js.map +1 -1
  9. package/out/src/sdk/WalletServices.interfaces.d.ts +8 -0
  10. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  11. package/out/src/services/Services.d.ts.map +1 -1
  12. package/out/src/services/Services.js +3 -1
  13. package/out/src/services/Services.js.map +1 -1
  14. package/out/src/services/chaintracker/LocalChainTracker.d.ts +96 -0
  15. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
  16. package/out/src/services/chaintracker/LocalChainTracker.js +295 -0
  17. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
  18. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +48 -0
  19. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
  20. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
  21. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
  22. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
  23. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
  24. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
  25. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
  26. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +46 -0
  27. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  28. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +7 -2
  29. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  30. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +9 -3
  31. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  32. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +48 -6
  33. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  34. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  35. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +1 -1
  36. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  38. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +5 -4
  39. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  40. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +8 -0
  41. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  42. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +4 -1
  43. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  44. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +3 -0
  45. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  46. package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
  47. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  48. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +5 -0
  49. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  50. package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
  51. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  52. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +33 -0
  53. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
  54. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -0
  55. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
  56. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +39 -0
  57. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  58. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +248 -85
  59. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  60. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
  61. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
  62. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +30 -0
  63. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
  64. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +2 -1
  65. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  66. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +2 -2
  67. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  68. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +31 -4
  69. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  70. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +124 -46
  71. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  72. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +39 -0
  73. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
  74. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +194 -0
  75. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
  76. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +30 -0
  77. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
  78. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +57 -0
  79. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
  80. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +12 -0
  81. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
  82. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +52 -0
  83. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
  84. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +40 -0
  85. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
  86. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +207 -0
  87. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
  88. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +11 -3
  89. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  90. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +51 -12
  91. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  92. package/out/src/services/chaintracker/index.all.d.ts +1 -0
  93. package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
  94. package/out/src/services/chaintracker/index.all.js +1 -0
  95. package/out/src/services/chaintracker/index.all.js.map +1 -1
  96. package/out/src/services/chaintracker/index.client.d.ts +1 -0
  97. package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
  98. package/out/src/services/chaintracker/index.client.js +1 -0
  99. package/out/src/services/chaintracker/index.client.js.map +1 -1
  100. package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
  101. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
  102. package/out/src/services/chaintracker/index.mobile.js +1 -0
  103. package/out/src/services/chaintracker/index.mobile.js.map +1 -1
  104. package/package.json +2 -2
@@ -0,0 +1,32 @@
1
+ import type { BulkFileDataValidationRequest, BulkFileDataValidationResult, BulkFileDataValidatorApi } from '../Api/BulkFileDataValidatorApi';
2
+ export interface BulkFileDataValidatorWorkerRequest {
3
+ id: number;
4
+ request: Omit<BulkFileDataValidationRequest, 'data'> & {
5
+ data: ArrayBuffer;
6
+ };
7
+ }
8
+ interface WorkerSuccess {
9
+ id: number;
10
+ ok: true;
11
+ result: Omit<BulkFileDataValidationResult, 'data'> & {
12
+ data: ArrayBuffer;
13
+ };
14
+ }
15
+ interface WorkerFailure {
16
+ id: number;
17
+ ok: false;
18
+ error: {
19
+ name: string;
20
+ message: string;
21
+ stack?: string;
22
+ } | string;
23
+ data: ArrayBuffer;
24
+ }
25
+ export interface BulkFileDataValidatorWorkerPort {
26
+ on(event: 'message', listener: (message: BulkFileDataValidatorWorkerRequest) => void | Promise<void>): unknown;
27
+ postMessage(message: WorkerSuccess | WorkerFailure, transferList: ArrayBuffer[]): unknown;
28
+ }
29
+ export declare function createBulkFileDataValidatorWorkerHandler(port: Pick<BulkFileDataValidatorWorkerPort, 'postMessage'>, validator?: BulkFileDataValidatorApi): (message: BulkFileDataValidatorWorkerRequest) => Promise<void>;
30
+ export declare function attachBulkFileDataValidatorWorker(port: BulkFileDataValidatorWorkerPort, validator?: BulkFileDataValidatorApi): void;
31
+ export {};
32
+ //# sourceMappingURL=BulkFileDataValidator.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkFileDataValidator.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,iCAAiC,CAAA;AAGxC,MAAM,WAAW,kCAAkC;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CAC7E;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CAC3E;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAA;IACjE,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,+BAA+B;IAC9C,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,kCAAkC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;IAC9G,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;CAC1F;AAED,wBAAgB,wCAAwC,CACtD,IAAI,EAAE,IAAI,CAAC,+BAA+B,EAAE,aAAa,CAAC,EAC1D,SAAS,GAAE,wBAA4D,GACtE,CAAC,OAAO,EAAE,kCAAkC,KAAK,OAAO,CAAC,IAAI,CAAC,CAoBhE;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,+BAA+B,EACrC,SAAS,GAAE,wBAA4D,GACtE,IAAI,CAEN"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBulkFileDataValidatorWorkerHandler = createBulkFileDataValidatorWorkerHandler;
4
+ exports.attachBulkFileDataValidatorWorker = attachBulkFileDataValidatorWorker;
5
+ const node_worker_threads_1 = require("node:worker_threads");
6
+ const InlineBulkFileDataValidator_1 = require("./InlineBulkFileDataValidator");
7
+ function createBulkFileDataValidatorWorkerHandler(port, validator = new InlineBulkFileDataValidator_1.InlineBulkFileDataValidator()) {
8
+ return async ({ id, request }) => {
9
+ const data = new Uint8Array(request.data);
10
+ try {
11
+ const result = await validator.validate({ ...request, data });
12
+ const resultBuffer = result.data.buffer;
13
+ port.postMessage({ id, ok: true, result: { ...result, data: resultBuffer } }, [resultBuffer]);
14
+ }
15
+ catch (error) {
16
+ port.postMessage({
17
+ id,
18
+ ok: false,
19
+ error: error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : String(error),
20
+ data: data.buffer
21
+ }, [data.buffer]);
22
+ }
23
+ };
24
+ }
25
+ function attachBulkFileDataValidatorWorker(port, validator = new InlineBulkFileDataValidator_1.InlineBulkFileDataValidator()) {
26
+ port.on('message', createBulkFileDataValidatorWorkerHandler(port, validator));
27
+ }
28
+ if (node_worker_threads_1.parentPort != null)
29
+ attachBulkFileDataValidatorWorker(node_worker_threads_1.parentPort);
30
+ //# sourceMappingURL=BulkFileDataValidator.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkFileDataValidator.worker.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.ts"],"names":[],"mappings":";;;;AAAA,6DAAgD;AAMhD,+EAA2E;AAyB3E,kDACE,IAA0D,EAC1D,SAAS,GAA6B,IAAI,yDAA2B,EAAE;IAEvE,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAqB,CAAA;YACtD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CACd;gBACE,EAAE;gBACF,EAAE,EAAE,KAAK;gBACT,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3G,IAAI,EAAE,IAAI,CAAC,MAAqB;aACjC,EACD,CAAC,IAAI,CAAC,MAAqB,CAAC,CAC7B,CAAA;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,2CACE,IAAqC,EACrC,SAAS,GAA6B,IAAI,yDAA2B,EAAE;IAEvE,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,wCAAwC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,IAAI,gCAAU,IAAI,IAAI;IAAE,iCAAiC,CAAC,gCAAU,CAAC,CAAA"}
@@ -45,7 +45,8 @@ export interface BulkHeaderFileInfo {
45
45
  chain?: Chain;
46
46
  data?: Uint8Array;
47
47
  /**
48
- * true iff these properties should be considered pre-validated, including a valid required fileHash of data (when not undefined).
48
+ * Advisory process-local validation state. Never trust this value after it
49
+ * crosses a network or storage boundary; revalidate the object bytes.
49
50
  */
50
51
  validated?: boolean;
51
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BulkHeaderFile.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BulkHeaderFile.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts"],"names":[],"mappings":"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"}
@@ -135,11 +135,11 @@ class BulkHeaderFileStorage extends BulkHeaderFile {
135
135
  async ensureData() {
136
136
  if (this.data != null)
137
137
  return this.data;
138
- if (!this.sourceUrl || (this.fetch == null)) {
138
+ if (!this.sourceUrl || this.fetch == null) {
139
139
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('sourceUrl and fetch', 'defined. Or data must be defined.');
140
140
  }
141
141
  const url = this.fetch.pathJoin(this.sourceUrl, this.fileName);
142
- this.data = await this.fetch.download(url);
142
+ this.data = await this.fetch.download(url, this.count * 80);
143
143
  if (!this.data)
144
144
  throw new WERR_errors_1.WERR_INVALID_OPERATION(`failed to download data from ${url}`);
145
145
  if (this.validated) {
@@ -1 +1 @@
1
- {"version":3,"file":"BulkHeaderFile.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BulkHeaderFile.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import { HttpClient } from '@bsv/sdk';
2
- import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
2
+ import { ChaintracksDownloadOptions, ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
3
+ export interface ChaintracksFetchOptions {
4
+ /** Number of retries after the initial request. Defaults to three. */
5
+ maxRetries?: number;
6
+ /** Deadline covering connection, headers, and response body. */
7
+ timeoutMsecs?: number;
8
+ /** Maximum materialized response size for binary and JSON requests. */
9
+ maxResponseBytes?: number;
10
+ retryMsecs?: number;
11
+ maxRetryMsecs?: number;
12
+ /** Testable jitter source in the inclusive range 0..1. */
13
+ random?: () => number;
14
+ }
3
15
  export declare class ChaintracksFetchError extends Error {
4
16
  readonly url: string;
5
17
  readonly status: number;
@@ -9,13 +21,28 @@ export declare class ChaintracksFetchError extends Error {
9
21
  get retryable(): boolean;
10
22
  }
11
23
  /**
12
- * This class implements the ChaintracksFetchApi
13
- * using the @bsv/sdk `defaultHttpClient`.
24
+ * Bounded fetch implementation shared by ChainTracks sources.
25
+ *
26
+ * Retry policy lives here so callers never multiply attempts. Every attempt
27
+ * has a deadline that remains active while the response body is consumed, and
28
+ * every materialized response has an explicit byte ceiling.
14
29
  */
15
30
  export declare class ChaintracksFetch implements ChaintracksFetchApi {
16
31
  httpClient: HttpClient;
17
- download(url: string): Promise<Uint8Array>;
32
+ private readonly maxRetries;
33
+ private readonly timeoutMsecs;
34
+ private readonly maxResponseBytes;
35
+ private readonly retryMsecs;
36
+ private readonly maxRetryMsecs;
37
+ private readonly random;
38
+ constructor(options?: ChaintracksFetchOptions);
39
+ download(url: string, maxResponseBytes?: number, options?: ChaintracksDownloadOptions): Promise<Uint8Array>;
18
40
  fetchJson<R>(url: string): Promise<R>;
41
+ private requestBytes;
42
+ private requestAttempt;
43
+ private readResponseBytes;
44
+ private responseTooLarge;
45
+ private retryWaitMsecs;
19
46
  pathJoin(baseUrl: string, subpath: string): string;
20
47
  }
21
48
  //# sourceMappingURL=ChaintracksFetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksFetch.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAMhE,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,eAAe,CAAC,EAAE,MAAM;IAL1C,YACE,OAAO,EAAE,MAAM,EACC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA,EAIzC;IAED,IAAI,SAAS,IAAK,OAAO,CAExB;CACF;AAqCD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,UAAU,EAAE,UAAU,CAAsB;IAEtC,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBhD;IAEK,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAkB1C;IAED,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD;CACF"}
1
+ {"version":3,"file":"ChaintracksFetch.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAS5F,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACtB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,eAAe,CAAC,EAAE,MAAM;IAL1C,YACE,OAAO,EAAE,MAAM,EACC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA,EAIzC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAmCD;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,UAAU,EAAE,UAAU,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,YAAY,OAAO,GAAE,uBAA4B,EAehD;IAEK,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBhH;IAEK,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAW1C;YAEa,YAAY;YAiCZ,cAAc;YAed,iBAAiB;IAwC/B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAOtB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIjD;CACF"}
@@ -3,8 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChaintracksFetch = exports.ChaintracksFetchError = void 0;
4
4
  const sdk_1 = require("@bsv/sdk");
5
5
  const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
6
- const MAX_RETRIES = 3;
6
+ const DEFAULT_MAX_RETRIES = 3;
7
7
  const DEFAULT_RETRY_MSECS = 1000;
8
+ const DEFAULT_MAX_RETRY_MSECS = 2 * 60 * 1000;
9
+ const DEFAULT_TIMEOUT_MSECS = 30 * 1000;
10
+ const DEFAULT_MAX_RESPONSE_BYTES = 16 * 1024 * 1024;
8
11
  class ChaintracksFetchError extends Error {
9
12
  url;
10
13
  status;
@@ -19,7 +22,7 @@ class ChaintracksFetchError extends Error {
19
22
  this.name = 'ChaintracksFetchError';
20
23
  }
21
24
  get retryable() {
22
- return isRetryableHttpStatus(this.status);
25
+ return this.status === 0 || isRetryableHttpStatus(this.status);
23
26
  }
24
27
  }
25
28
  exports.ChaintracksFetchError = ChaintracksFetchError;
@@ -38,70 +41,145 @@ function retryAfterMsecs(response) {
38
41
  return undefined;
39
42
  return Math.max(0, dateMsecs - Date.now());
40
43
  }
41
- function retryWaitMsecs(retry, retryAfter) {
42
- return Math.min(retryAfter ?? DEFAULT_RETRY_MSECS * (retry + 1), 2 * 60 * 1000);
43
- }
44
- async function waitIfRetryable(response, retry) {
45
- if (!isRetryableHttpStatus(response.status) || retry >= MAX_RETRIES)
46
- return false;
47
- await (0, utilityHelpers_1.wait)(retryWaitMsecs(retry, retryAfterMsecs(response)));
48
- return true;
49
- }
50
44
  function fetchError(url, response, kind) {
51
45
  const retryAfter = retryAfterMsecs(response);
52
46
  return new ChaintracksFetchError(`Failed to ${kind} from ${url}: ${response.status} ${response.statusText}`, url, response.status, response.statusText, retryAfter);
53
47
  }
48
+ function positiveSafeInteger(value, fallback, name) {
49
+ const resolved = value ?? fallback;
50
+ if (!Number.isSafeInteger(resolved) || resolved < 1) {
51
+ throw new Error(`${name} must be a positive safe integer`);
52
+ }
53
+ return resolved;
54
+ }
54
55
  /**
55
- * This class implements the ChaintracksFetchApi
56
- * using the @bsv/sdk `defaultHttpClient`.
56
+ * Bounded fetch implementation shared by ChainTracks sources.
57
+ *
58
+ * Retry policy lives here so callers never multiply attempts. Every attempt
59
+ * has a deadline that remains active while the response body is consumed, and
60
+ * every materialized response has an explicit byte ceiling.
57
61
  */
58
62
  class ChaintracksFetch {
59
63
  httpClient = (0, sdk_1.defaultHttpClient)();
60
- async download(url) {
61
- for (let retry = 0;; retry++) {
62
- const response = await fetch(url, {
63
- method: 'GET',
64
- headers: {
65
- 'Content-Type': 'application/octet-stream'
66
- }
67
- });
68
- if (!response.ok) {
69
- if (await waitIfRetryable(response, retry))
70
- continue;
71
- throw fetchError(url, response, 'download');
72
- }
73
- const data = await response.arrayBuffer();
74
- return new Uint8Array(data);
64
+ maxRetries;
65
+ timeoutMsecs;
66
+ maxResponseBytes;
67
+ retryMsecs;
68
+ maxRetryMsecs;
69
+ random;
70
+ constructor(options = {}) {
71
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
72
+ if (!Number.isSafeInteger(maxRetries) || maxRetries < 0) {
73
+ throw new Error('maxRetries must be a non-negative safe integer');
75
74
  }
75
+ this.maxRetries = maxRetries;
76
+ this.timeoutMsecs = positiveSafeInteger(options.timeoutMsecs, DEFAULT_TIMEOUT_MSECS, 'timeoutMsecs');
77
+ this.maxResponseBytes = positiveSafeInteger(options.maxResponseBytes, DEFAULT_MAX_RESPONSE_BYTES, 'maxResponseBytes');
78
+ this.retryMsecs = positiveSafeInteger(options.retryMsecs, DEFAULT_RETRY_MSECS, 'retryMsecs');
79
+ this.maxRetryMsecs = positiveSafeInteger(options.maxRetryMsecs, DEFAULT_MAX_RETRY_MSECS, 'maxRetryMsecs');
80
+ this.random = options.random ?? Math.random;
81
+ }
82
+ async download(url, maxResponseBytes, options) {
83
+ const responseLimit = maxResponseBytes == null
84
+ ? this.maxResponseBytes
85
+ : Math.min(this.maxResponseBytes, positiveSafeInteger(maxResponseBytes, this.maxResponseBytes, 'maxResponseBytes'));
86
+ return await this.requestBytes(url, {
87
+ method: 'GET',
88
+ headers: { Accept: 'application/octet-stream' }
89
+ }, 'download', responseLimit, options);
76
90
  }
77
91
  async fetchJson(url) {
78
- const requestJsonOptions = {
92
+ const bytes = await this.requestBytes(url, {
79
93
  method: 'GET',
80
- headers: {
81
- Accept: 'application/json'
82
- }
83
- };
84
- let json;
94
+ headers: { Accept: 'application/json' }
95
+ }, 'fetch JSON', this.maxResponseBytes);
96
+ return JSON.parse(new TextDecoder().decode(bytes));
97
+ }
98
+ async requestBytes(url, init, kind, maxResponseBytes, downloadOptions) {
85
99
  for (let retry = 0;; retry++) {
86
- const response = await fetch(url, requestJsonOptions);
87
- if (!response.ok) {
88
- if (await waitIfRetryable(response, retry))
89
- continue;
90
- throw fetchError(url, response, 'fetch JSON');
100
+ if (retry > 0)
101
+ await downloadOptions?.beforeRetry?.(retry + 1);
102
+ const controller = new AbortController();
103
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMsecs);
104
+ try {
105
+ return await this.requestAttempt(url, init, kind, maxResponseBytes, controller);
106
+ }
107
+ catch (error) {
108
+ const timedOut = controller.signal.aborted;
109
+ let fetchFailure;
110
+ if (error instanceof ChaintracksFetchError)
111
+ fetchFailure = error;
112
+ else {
113
+ fetchFailure = new ChaintracksFetchError(`Failed to ${kind} from ${url}: ${timedOut ? 'request timed out' : String(error)}`, url, 0, timedOut ? 'Request Timeout' : 'Network Error');
114
+ }
115
+ if (!fetchFailure.retryable || retry >= this.maxRetries)
116
+ throw fetchFailure;
117
+ await (0, utilityHelpers_1.wait)(this.retryWaitMsecs(retry, fetchFailure.retryAfterMsecs));
91
118
  }
92
- json = (await response.json());
93
- break;
119
+ finally {
120
+ clearTimeout(timeout);
121
+ }
122
+ }
123
+ }
124
+ async requestAttempt(url, init, kind, maxResponseBytes, controller) {
125
+ const response = await fetch(url, { ...init, signal: controller.signal });
126
+ if (!response.ok) {
127
+ await response.body?.cancel().catch(() => undefined);
128
+ throw fetchError(url, response, kind);
129
+ }
130
+ return await this.readResponseBytes(url, response, kind, maxResponseBytes);
131
+ }
132
+ async readResponseBytes(url, response, kind, maxResponseBytes) {
133
+ const contentLength = Number(response.headers.get('content-length'));
134
+ if (Number.isFinite(contentLength) && contentLength > maxResponseBytes) {
135
+ await response.body?.cancel().catch(() => undefined);
136
+ throw this.responseTooLarge(url, response, kind, contentLength, maxResponseBytes);
137
+ }
138
+ if (response.body == null)
139
+ return new Uint8Array();
140
+ const reader = response.body.getReader();
141
+ const chunks = [];
142
+ let total = 0;
143
+ try {
144
+ for (;;) {
145
+ const { done, value } = await reader.read();
146
+ if (done)
147
+ break;
148
+ total += value.length;
149
+ if (total > maxResponseBytes) {
150
+ await reader.cancel().catch(() => undefined);
151
+ throw this.responseTooLarge(url, response, kind, total, maxResponseBytes);
152
+ }
153
+ chunks.push(value);
154
+ }
155
+ }
156
+ finally {
157
+ reader.releaseLock();
94
158
  }
95
- return json;
159
+ const bytes = new Uint8Array(total);
160
+ let offset = 0;
161
+ for (const chunk of chunks) {
162
+ bytes.set(chunk, offset);
163
+ offset += chunk.length;
164
+ }
165
+ return bytes;
166
+ }
167
+ responseTooLarge(url, response, kind, observedBytes, maxResponseBytes) {
168
+ return new ChaintracksFetchError(`Failed to ${kind} from ${url}: response exceeded ${maxResponseBytes} bytes ` +
169
+ `(observed at least ${observedBytes})`, url, response.status, 'Response Too Large');
170
+ }
171
+ retryWaitMsecs(retry, retryAfter) {
172
+ if (retryAfter != null)
173
+ return Math.min(retryAfter, this.maxRetryMsecs);
174
+ const exponential = Math.min(this.retryMsecs * 2 ** retry, this.maxRetryMsecs);
175
+ const jitter = 0.75 + Math.min(1, Math.max(0, this.random())) * 0.5;
176
+ return Math.min(Math.round(exponential * jitter), this.maxRetryMsecs);
96
177
  }
97
178
  pathJoin(baseUrl, subpath) {
98
- // Ensure the subpath doesn't start with a slash to avoid issues
99
179
  const cleanSubpath = subpath.replace(/^\/+/, '');
100
180
  if (!baseUrl.endsWith('/'))
101
181
  baseUrl += '/';
102
- // Create a new URL object and append the subpath
103
- const url = new URL(cleanSubpath, baseUrl);
104
- return url.toString();
182
+ return new URL(cleanSubpath, baseUrl).toString();
105
183
  }
106
184
  }
107
185
  exports.ChaintracksFetch = ChaintracksFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":";;;AAAA,kCAAwD;AAExD,uEAAyD;AAEzD,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAC7C,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAA;AACvC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAenD,2BAAmC,SAAQ,KAAK;IAG5B,GAAG;IACH,MAAM;IACN,UAAU;IACV,eAAe;IALjC,YACE,OAAe,EACC,GAAW,EACX,MAAc,EACd,UAAkB,EAClB,eAAwB;QAExC,KAAK,CAAC,OAAO,CAAC,CAAA;mBALE,GAAG;sBACH,MAAM;0BACN,UAAU;+BACV,eAAe;QAG/B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChE,CAAC;CACF;;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACtD,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,OAAO,GAAG,IAAI,CAAA;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,QAAkB,EAAE,IAAY;IAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAC5C,OAAO,IAAI,qBAAqB,CAC9B,aAAa,IAAI,SAAS,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAC1E,GAAG,EACH,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,UAAU,CACX,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB,EAAE,QAAgB,EAAE,IAAY;IACpF,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAA;IAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH;IACE,UAAU,GAAe,IAAA,uBAAiB,GAAE,CAAA;IAC3B,UAAU,CAAQ;IAClB,YAAY,CAAQ;IACpB,gBAAgB,CAAQ;IACxB,UAAU,CAAQ;IAClB,aAAa,CAAQ;IACrB,MAAM,CAAc;IAErC,YAAY,OAAO,GAA4B,EAAE;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,EAAE,cAAc,CAAC,CAAA;QACpG,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CACzC,OAAO,CAAC,gBAAgB,EACxB,0BAA0B,EAC1B,kBAAkB,CACnB,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAA;QAC5F,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,uBAAuB,EAAE,eAAe,CAAC,CAAA;QACzG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,gBAAyB,EAAE,OAAoC;QACzF,MAAM,aAAa,GACjB,gBAAgB,IAAI,IAAI;YACtB,CAAC,CAAC,IAAI,CAAC,gBAAgB;YACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,gBAAgB,EACrB,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CACjF,CAAA;QACP,OAAO,MAAM,IAAI,CAAC,YAAY,CAC5B,GAAG,EACH;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;SAChD,EACD,UAAU,EACV,aAAa,EACb,OAAO,CACR,CAAA;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAI,GAAW;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CACnC,GAAG,EACH;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,EACD,YAAY,EACZ,IAAI,CAAC,gBAAgB,CACtB,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAM,CAAA;IACzD,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,GAAW,EACX,IAAiB,EACjB,IAAY,EACZ,gBAAwB,EACxB,eAA4C;QAE5C,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,eAAe,EAAE,WAAW,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YACvE,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAA;YACjF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAA;gBAC1C,IAAI,YAAmC,CAAA;gBACvC,IAAI,KAAK,YAAY,qBAAqB;oBAAE,YAAY,GAAG,KAAK,CAAA;qBAC3D,CAAC;oBACJ,YAAY,GAAG,IAAI,qBAAqB,CACtC,aAAa,IAAI,SAAS,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAClF,GAAG,EACH,CAAC,EACD,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAC/C,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU;oBAAE,MAAM,YAAY,CAAA;gBAC3E,MAAM,IAAA,qBAAI,EAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAA;YACtE,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,GAAW,EACX,IAAiB,EACjB,IAAY,EACZ,gBAAwB,EACxB,UAA2B;QAE3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACpD,MAAM,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC5E,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,GAAW,EACX,QAAkB,EAClB,IAAY,EACZ,gBAAwB;QAExB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACvE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACpD,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;QACnF,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI;YAAE,OAAO,IAAI,UAAU,EAAE,CAAA;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACxC,MAAM,MAAM,GAAiB,EAAE,CAAA;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI;oBAAE,MAAK;gBACf,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;gBACrB,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;oBAC7B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;oBAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAA;gBAC3E,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAA;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;QACxB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,gBAAgB,CACtB,GAAW,EACX,QAAkB,EAClB,IAAY,EACZ,aAAqB,EACrB,gBAAwB;QAExB,OAAO,IAAI,qBAAqB,CAC9B,aAAa,IAAI,SAAS,GAAG,uBAAuB,gBAAgB,SAAS;YAC3E,sBAAsB,aAAa,GAAG,EACxC,GAAG,EACH,QAAQ,CAAC,MAAM,EACf,oBAAoB,CACrB,CAAA;IACH,CAAC;IAEO,cAAc,CAAC,KAAa,EAAE,UAAmB;QACvD,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACvE,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,OAAe;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,CAAA;QAC1C,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;IAClD,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ import type { BulkFileDownloadBudgetApi, BulkFileDownloadBudgetSnapshot } from '../Api/BulkFileDataCacheApi';
2
+ export interface DurableFileBulkFileDownloadBudgetOptions {
3
+ maxBytes: number;
4
+ stateFile: string;
5
+ windowMsecs?: number;
6
+ now?: () => number;
7
+ }
8
+ /**
9
+ * Crash-safe fixed-window reservation ledger for remote bulk-header bytes.
10
+ *
11
+ * State is flushed before `consume` resolves, so a crash may conservatively
12
+ * over-count an attempt but can never reset the allowance or permit an
13
+ * unrecorded request. Deployments must place `stateFile` on durable storage.
14
+ *
15
+ * @public
16
+ */
17
+ export declare class DurableFileBulkFileDownloadBudget implements BulkFileDownloadBudgetApi {
18
+ private readonly maxBytes;
19
+ private readonly windowMsecs;
20
+ private readonly stateFile;
21
+ private readonly now;
22
+ private tail;
23
+ private snapshotState;
24
+ constructor(options: DurableFileBulkFileDownloadBudgetOptions);
25
+ /**
26
+ * Load and validate the durable ledger before the service becomes ready.
27
+ *
28
+ * `consume` also initializes lazily, but services should await this method so
29
+ * readiness reports the persisted allowance and corrupt state fails startup.
30
+ */
31
+ initialize(): Promise<void>;
32
+ consume(byteCount: number): Promise<void>;
33
+ snapshot(): BulkFileDownloadBudgetSnapshot;
34
+ private consumeSerialized;
35
+ private newState;
36
+ private readState;
37
+ private writeState;
38
+ }
39
+ //# sourceMappingURL=DurableFileBulkFileDownloadBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableFileBulkFileDownloadBudget.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAE5G,MAAM,WAAW,wCAAwC;IACvD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAUD;;;;;;;;GAQG;AACH,qBAAa,iCAAkC,YAAW,yBAAyB;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,aAAa,CAAa;IAElC,YAAY,OAAO,EAAE,wCAAwC,EAO5D;IAED;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAShC;IAEK,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9C;IAED,QAAQ,IAAI,8BAA8B,CAQzC;YAEa,iBAAiB;IAe/B,OAAO,CAAC,QAAQ;YAUF,SAAS;YAsBT,UAAU;CAoBzB"}