@aexhq/sdk 0.40.7 → 0.40.8

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.
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Public-safe retry primitives shared by public packages through the
3
+ * `@aexhq/contracts/internal` subpath. Keep this module free of hosted
4
+ * implementation details and do not export it from the public contracts root.
5
+ */
6
+ export const RETRYABLE_HTTP_STATUS = [429, 500, 502, 503, 504, 529];
7
+ export const RATE_LIMIT_HTTP_STATUS = [429, 503, 529];
8
+ const RETRYABLE_HTTP_STATUS_SET = new Set(RETRYABLE_HTTP_STATUS);
9
+ const RATE_LIMIT_HTTP_STATUS_SET = new Set(RATE_LIMIT_HTTP_STATUS);
10
+ export function isRetryableHttpStatus(status) {
11
+ return RETRYABLE_HTTP_STATUS_SET.has(status);
12
+ }
13
+ export function isRateLimitHttpStatus(status) {
14
+ return RATE_LIMIT_HTTP_STATUS_SET.has(status);
15
+ }
16
+ /**
17
+ * Parse an HTTP `Retry-After` header into milliseconds. RFC 7231 permits either
18
+ * a non-negative integer number of seconds or an HTTP-date.
19
+ */
20
+ export function parseRetryAfterMs(headerValue, now = Date.now()) {
21
+ if (headerValue === null || headerValue === undefined)
22
+ return undefined;
23
+ const trimmed = headerValue.trim();
24
+ if (trimmed.length === 0)
25
+ return undefined;
26
+ if (/^\d+$/.test(trimmed)) {
27
+ return Number(trimmed) * 1000;
28
+ }
29
+ const dateMs = Date.parse(trimmed);
30
+ if (!Number.isNaN(dateMs)) {
31
+ return Math.max(0, dateMs - now);
32
+ }
33
+ return undefined;
34
+ }
35
+ /**
36
+ * Full-jitter exponential backoff: the nominal wait doubles per failed attempt
37
+ * and the actual delay is sampled uniformly in `[0, nominal]`.
38
+ */
39
+ export function computeRetryBackoffDelayMs(config, attemptNumber, random) {
40
+ const exponent = Math.max(0, attemptNumber - 1);
41
+ const nominal = Math.min(config.maxDelayMs, config.initialDelayMs * 2 ** exponent);
42
+ return Math.round(random() * nominal);
43
+ }
44
+ /** Combine a server `Retry-After` floor with the jittered backoff delay. */
45
+ export function computeRetryDelayMs(config, attemptNumber, random, retryAfterMs) {
46
+ const backoff = computeRetryBackoffDelayMs(config, attemptNumber, random);
47
+ return retryAfterMs === undefined ? backoff : Math.max(retryAfterMs, backoff);
48
+ }
49
+ export function abortableSleep(ms, signal) {
50
+ return new Promise((resolve, reject) => {
51
+ if (signal?.aborted) {
52
+ reject(abortReason(signal));
53
+ return;
54
+ }
55
+ const timer = setTimeout(() => {
56
+ signal?.removeEventListener("abort", onAbort);
57
+ resolve();
58
+ }, ms);
59
+ const onAbort = () => {
60
+ clearTimeout(timer);
61
+ reject(signal ? abortReason(signal) : makeAbortError());
62
+ };
63
+ signal?.addEventListener("abort", onAbort, { once: true });
64
+ });
65
+ }
66
+ function abortReason(signal) {
67
+ return signal.reason instanceof Error ? signal.reason : makeAbortError();
68
+ }
69
+ function makeAbortError() {
70
+ if (typeof DOMException !== "undefined")
71
+ return new DOMException("Aborted", "AbortError");
72
+ const err = new Error("Aborted");
73
+ err.name = "AbortError";
74
+ return err;
75
+ }
@@ -432,6 +432,12 @@ export interface ReadOutputTextOptions {
432
432
  * reached, so the remainder of a large file is never transferred.
433
433
  */
434
434
  readonly maxBytes?: number;
435
+ /**
436
+ * Per-attempt timeout for fetching and reading the selected output body.
437
+ * Defaults to 15_000ms; idempotent output reads retry once on timeout before
438
+ * surfacing a structured NETWORK_ERROR.
439
+ */
440
+ readonly timeoutMs?: number;
435
441
  /**
436
442
  * When set, return only the lines of the (capped) text matching this pattern.
437
443
  * A string is matched literally (case-insensitive); a RegExp is used as given.
@@ -19,7 +19,7 @@
19
19
  * 3. POST /assets/finalize → confirms the object exists (HEAD only).
20
20
  *
21
21
  */
22
- import type { AssetFetch, AssetsHttpClient, UploadedAsset } from "./_contracts/internal.js";
22
+ import { type AssetFetch, type AssetUploadRetryOptions, type AssetsHttpClient, type UploadedAsset } from "./_contracts/internal.js";
23
23
  import type { ByteSink } from "./canonical-zip.js";
24
24
  export { uploadAsset } from "./_contracts/internal.js";
25
25
  export type { AssetFetch, AssetsHttpClient, UploadAssetArgs, UploadedAsset } from "./_contracts/internal.js";
@@ -39,6 +39,7 @@ export interface UploadAssetStreamArgs {
39
39
  readonly drive: ZipStreamDriver;
40
40
  readonly contentType?: string;
41
41
  readonly fetch?: AssetFetch;
42
+ readonly retry?: AssetUploadRetryOptions;
42
43
  readonly partSize?: number;
43
44
  readonly partConcurrency?: number;
44
45
  }
@@ -19,9 +19,8 @@
19
19
  * 3. POST /assets/finalize → confirms the object exists (HEAD only).
20
20
  *
21
21
  */
22
- import { extractErrorCode, redactUrl } from "./_contracts/index.js";
22
+ import { abortableSleep, directUploadRetryDelayMs, directUploadNetworkError, directUploadResponseError, isRetryableUploadError, isRetryableUploadStatus, parseRetryAfterMs, resolveAssetUploadRetryConfig, withinDirectUploadRetryBudget } from "./_contracts/internal.js";
23
23
  export { uploadAsset } from "./_contracts/internal.js";
24
- const DIRECT_UPLOAD_MAX_ATTEMPTS = 3;
25
24
  // ---------------------------------------------------------------------------
26
25
  // Internal helpers
27
26
  // ---------------------------------------------------------------------------
@@ -93,7 +92,10 @@ export async function uploadAssetMultipart(args) {
93
92
  let url = urlByPart.get(partNumber);
94
93
  if (!url)
95
94
  url = await refreshPartUrl(partNumber);
96
- const etag = await putPartWithRetry(doFetch, url, bytes, args.contentType, () => refreshPartUrl(partNumber));
95
+ const etag = await putPartWithRetry(doFetch, url, bytes, args.contentType, () => refreshPartUrl(partNumber), args.retry);
96
+ if (!etag) {
97
+ throw new Error(`uploadAssetMultipart: part ${partNumber} PUT succeeded without an ETag header`);
98
+ }
97
99
  parts.push({ partNumber, etag });
98
100
  };
99
101
  const submitPart = async (partNumber, bytes) => {
@@ -207,10 +209,15 @@ function makePartChunker(partSize, emit) {
207
209
  };
208
210
  }
209
211
  /** PUT one part with bounded retry; refreshes the URL once on a 403 (expiry). Returns the ETag. */
210
- async function putPartWithRetry(fetchImpl, url, bytes, contentType, refreshUrl) {
212
+ async function putPartWithRetry(fetchImpl, url, bytes, contentType, refreshUrl, retryOptions) {
211
213
  let currentUrl = url;
212
214
  let refreshed = false;
213
- for (let attempt = 1; attempt <= DIRECT_UPLOAD_MAX_ATTEMPTS; attempt++) {
215
+ const retryConfig = resolveAssetUploadRetryConfig(retryOptions);
216
+ const sleep = retryOptions?.sleep ?? abortableSleep;
217
+ const random = retryOptions?.random ?? Math.random;
218
+ const now = retryOptions?.now ?? Date.now;
219
+ const startedAt = now();
220
+ for (let attempt = 1; attempt <= retryConfig.maxAttempts; attempt++) {
214
221
  let response;
215
222
  try {
216
223
  response = await fetchImpl(currentUrl, {
@@ -220,8 +227,14 @@ async function putPartWithRetry(fetchImpl, url, bytes, contentType, refreshUrl)
220
227
  });
221
228
  }
222
229
  catch (err) {
223
- if (attempt < DIRECT_UPLOAD_MAX_ATTEMPTS && isRetryableUploadError(err))
230
+ if (attempt < retryConfig.maxAttempts && isRetryableUploadError(err)) {
231
+ const delay = directUploadRetryDelayMs(retryConfig, attempt, random, undefined);
232
+ if (!withinDirectUploadRetryBudget(retryConfig, startedAt, delay, now)) {
233
+ throw directUploadNetworkError(currentUrl, err, attempt);
234
+ }
235
+ await sleep(delay);
224
236
  continue;
237
+ }
225
238
  throw directUploadNetworkError(currentUrl, err, attempt);
226
239
  }
227
240
  if (response.ok) {
@@ -235,66 +248,20 @@ async function putPartWithRetry(fetchImpl, url, bytes, contentType, refreshUrl)
235
248
  currentUrl = await refreshUrl();
236
249
  continue;
237
250
  }
238
- if (attempt < DIRECT_UPLOAD_MAX_ATTEMPTS && isRetryableUploadStatus(response.status)) {
251
+ if (attempt < retryConfig.maxAttempts && isRetryableUploadStatus(response.status)) {
252
+ const retryAfterMs = parseRetryAfterMs(response.headers?.get("retry-after"), now());
253
+ const delay = directUploadRetryDelayMs(retryConfig, attempt, random, retryAfterMs);
254
+ if (!withinDirectUploadRetryBudget(retryConfig, startedAt, delay, now)) {
255
+ const detail = await response.text().catch(() => "");
256
+ throw directUploadResponseError(currentUrl, response.status, detail, attempt);
257
+ }
239
258
  await response.text().catch(() => "");
259
+ await sleep(delay);
240
260
  continue;
241
261
  }
242
262
  const detail = await response.text().catch(() => "");
243
263
  throw directUploadResponseError(currentUrl, response.status, detail, attempt);
244
264
  }
245
- throw directUploadResponseError(currentUrl, 0, "exhausted retries", DIRECT_UPLOAD_MAX_ATTEMPTS);
246
- }
247
- function isRetryableUploadStatus(status) {
248
- return status === 408 || status === 425 || status === 429 || (status >= 500 && status <= 599);
249
- }
250
- function isRetryableUploadError(err) {
251
- if (isNamedError(err, "AbortError"))
252
- return false;
253
- return true;
254
- }
255
- function directUploadNetworkError(uploadUrl, err, attempts) {
256
- const safeUrl = redactUrl(uploadUrl);
257
- const code = extractErrorCode(err);
258
- const detail = sanitizeUploadText(errorMessage(err)).slice(0, 500);
259
- return new Error(`uploadAsset: direct upload PUT failed for ${safeUrl} after ${attemptsLabel(attempts)}` +
260
- (code ? ` (${code})` : "") +
261
- (detail ? `: ${detail}` : ""));
262
- }
263
- function directUploadResponseError(uploadUrl, status, detail, attempts) {
264
- const safeUrl = redactUrl(uploadUrl);
265
- const safeDetail = sanitizeUploadText(detail).slice(0, 500);
266
- return new Error(`uploadAsset: direct upload PUT failed for ${safeUrl} with status ${status}` +
267
- (attempts > 1 ? ` after ${attemptsLabel(attempts)}` : "") +
268
- (safeDetail ? `: ${safeDetail}` : ""));
269
- }
270
- function attemptsLabel(attempts) {
271
- return attempts === 1 ? "1 attempt" : `${attempts} attempts`;
272
- }
273
- function errorMessage(err) {
274
- if (err instanceof Error)
275
- return err.message || err.name;
276
- if (typeof err === "string")
277
- return err;
278
- return String(err);
279
- }
280
- function isNamedError(err, name) {
281
- return stringProperty(err, "name") === name;
282
- }
283
- function stringProperty(value, key) {
284
- if (!value || typeof value !== "object")
285
- return undefined;
286
- const prop = value[key];
287
- return typeof prop === "string" && prop.length > 0 ? prop : undefined;
288
- }
289
- function sanitizeUploadText(text) {
290
- return text
291
- .replace(/https?:\/\/[^\s<>"'`]+/g, (raw) => redactUrlPreservingTrailingPunctuation(raw))
292
- .replace(/\b(?:X-Amz-(?:Algorithm|Credential|Date|Expires|Security-Token|Signature|SignedHeaders)|AWSAccessKeyId|Signature|Credential|Security-Token|AccessKeyId|SecretAccessKey|SessionToken)=([^&\s<>"'`]+)/gi, "[redacted]")
293
- .replace(/\bAKIA[0-9A-Z]{8,}\b/g, "[redacted]");
294
- }
295
- function redactUrlPreservingTrailingPunctuation(raw) {
296
- const trailing = raw.match(/[),.;:!?]+$/)?.[0] ?? "";
297
- const candidate = trailing ? raw.slice(0, -trailing.length) : raw;
298
- return `${redactUrl(candidate)}${trailing}`;
265
+ throw directUploadResponseError(currentUrl, 0, "exhausted retries", retryConfig.maxAttempts);
299
266
  }
300
267
  //# sourceMappingURL=asset-upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-upload.js","sourceRoot":"","sources":["../src/asset-upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-upload.js","sourceRoot":"","sources":["../src/asset-upload.ts"],"names":[],"mappings":"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"}