@layervai/qurl 0.7.0 → 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.
- package/README.md +212 -1
- package/dist/cjs/client.d.ts +19 -1
- package/dist/cjs/client.js +520 -9
- package/dist/cjs/crid.d.ts +2 -1
- package/dist/cjs/crid.js +11 -2
- package/dist/cjs/errors.d.ts +20 -3
- package/dist/cjs/errors.js +31 -4
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/node/agent-runtime.d.ts +108 -0
- package/dist/cjs/node/agent-runtime.js +952 -0
- package/dist/cjs/node/agent-state.d.ts +100 -0
- package/dist/cjs/node/agent-state.js +311 -0
- package/dist/cjs/node/agent-transport.d.ts +17 -0
- package/dist/cjs/node/agent-transport.js +118 -0
- package/dist/cjs/node/deployment.d.ts +6 -0
- package/dist/cjs/node/deployment.js +24 -3
- package/dist/cjs/node/file-agent-state.d.ts +15 -0
- package/dist/cjs/node/file-agent-state.js +137 -0
- package/dist/cjs/node/native-loader.cjs +7 -0
- package/dist/cjs/node/native-loader.d.cts +11 -0
- package/dist/cjs/node/native-udp.d.ts +8 -3
- package/dist/cjs/node/native-udp.js +8 -3
- package/dist/cjs/node/nhp-wire.d.ts +9 -0
- package/dist/cjs/node/nhp-wire.js +24 -7
- package/dist/cjs/node/portal-opener.d.ts +7 -0
- package/dist/cjs/node/portal-opener.js +28 -6
- package/dist/cjs/node/provider.d.ts +19 -0
- package/dist/cjs/node/provider.js +153 -0
- package/dist/cjs/node/qv2.d.ts +3 -1
- package/dist/cjs/node/qv2.js +16 -2
- package/dist/cjs/node/relay.d.ts +12 -0
- package/dist/cjs/node/relay.js +111 -0
- package/dist/cjs/node/sealed-agent-state.d.ts +19 -0
- package/dist/cjs/node/sealed-agent-state.js +193 -0
- package/dist/cjs/node/strict-json.d.ts +1 -1
- package/dist/cjs/node/strict-json.js +8 -3
- package/dist/cjs/node.d.ts +14 -0
- package/dist/cjs/node.js +24 -1
- package/dist/cjs/types.d.ts +97 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client.d.ts +19 -1
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +521 -10
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/crid.d.ts +2 -1
- package/dist/esm/crid.d.ts.map +1 -1
- package/dist/esm/crid.js +10 -2
- package/dist/esm/crid.js.map +1 -1
- package/dist/esm/errors.d.ts +20 -3
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +29 -3
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node/agent-runtime.d.ts +109 -0
- package/dist/esm/node/agent-runtime.d.ts.map +1 -0
- package/dist/esm/node/agent-runtime.js +946 -0
- package/dist/esm/node/agent-runtime.js.map +1 -0
- package/dist/esm/node/agent-state.d.ts +101 -0
- package/dist/esm/node/agent-state.d.ts.map +1 -0
- package/dist/esm/node/agent-state.js +298 -0
- package/dist/esm/node/agent-state.js.map +1 -0
- package/dist/esm/node/agent-transport.d.ts +18 -0
- package/dist/esm/node/agent-transport.d.ts.map +1 -0
- package/dist/esm/node/agent-transport.js +114 -0
- package/dist/esm/node/agent-transport.js.map +1 -0
- package/dist/esm/node/deployment.d.ts +6 -0
- package/dist/esm/node/deployment.d.ts.map +1 -1
- package/dist/esm/node/deployment.js +23 -3
- package/dist/esm/node/deployment.js.map +1 -1
- package/dist/esm/node/file-agent-state.d.ts +16 -0
- package/dist/esm/node/file-agent-state.d.ts.map +1 -0
- package/dist/esm/node/file-agent-state.js +134 -0
- package/dist/esm/node/file-agent-state.js.map +1 -0
- package/dist/esm/node/native-loader.cjs +7 -0
- package/dist/esm/node/native-loader.d.cts +11 -0
- package/dist/esm/node/native-udp.d.ts +8 -3
- package/dist/esm/node/native-udp.d.ts.map +1 -1
- package/dist/esm/node/native-udp.js +7 -5
- package/dist/esm/node/native-udp.js.map +1 -1
- package/dist/esm/node/nhp-wire.d.ts +9 -0
- package/dist/esm/node/nhp-wire.d.ts.map +1 -1
- package/dist/esm/node/nhp-wire.js +23 -6
- package/dist/esm/node/nhp-wire.js.map +1 -1
- package/dist/esm/node/portal-opener.d.ts +7 -0
- package/dist/esm/node/portal-opener.d.ts.map +1 -1
- package/dist/esm/node/portal-opener.js +28 -6
- package/dist/esm/node/portal-opener.js.map +1 -1
- package/dist/esm/node/provider.d.ts +20 -0
- package/dist/esm/node/provider.d.ts.map +1 -0
- package/dist/esm/node/provider.js +149 -0
- package/dist/esm/node/provider.js.map +1 -0
- package/dist/esm/node/qv2.d.ts +3 -1
- package/dist/esm/node/qv2.d.ts.map +1 -1
- package/dist/esm/node/qv2.js +17 -3
- package/dist/esm/node/qv2.js.map +1 -1
- package/dist/esm/node/relay.d.ts +13 -0
- package/dist/esm/node/relay.d.ts.map +1 -0
- package/dist/esm/node/relay.js +105 -0
- package/dist/esm/node/relay.js.map +1 -0
- package/dist/esm/node/sealed-agent-state.d.ts +20 -0
- package/dist/esm/node/sealed-agent-state.d.ts.map +1 -0
- package/dist/esm/node/sealed-agent-state.js +190 -0
- package/dist/esm/node/sealed-agent-state.js.map +1 -0
- package/dist/esm/node/strict-json.d.ts +1 -1
- package/dist/esm/node/strict-json.d.ts.map +1 -1
- package/dist/esm/node/strict-json.js +8 -3
- package/dist/esm/node/strict-json.js.map +1 -1
- package/dist/esm/node.d.ts +14 -0
- package/dist/esm/node.d.ts.map +1 -1
- package/dist/esm/node.js +7 -0
- package/dist/esm/node.js.map +1 -1
- package/dist/esm/types.d.ts +97 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +16 -7
package/dist/esm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseCrid, cridKeyMatches } from "./crid.js";
|
|
2
|
-
import { ConnectorResourceOutcomeUnknownError, createError, ERROR_CODE_AMBIGUOUS_RESOURCE, ERROR_CODE_CLIENT_VALIDATION, ERROR_CODE_RESOURCE_NOT_FOUND, ERROR_CODE_CONNECTOR_RESOURCE_REVOKED, ERROR_CODE_UNEXPECTED_RESPONSE, ERROR_CODE_UNKNOWN, NetworkError, NotFoundError, QURLError, RuntimeError, TimeoutError, ValidationError, } from "./errors.js";
|
|
2
|
+
import { ConnectorResourceOutcomeUnknownError, createError, DelegatedBatchOutcomeUnknownError, ERROR_CODE_AMBIGUOUS_RESOURCE, ERROR_CODE_CLIENT_VALIDATION, ERROR_CODE_RESOURCE_NOT_FOUND, ERROR_CODE_CONNECTOR_RESOURCE_REVOKED, ERROR_CODE_UNEXPECTED_RESPONSE, ERROR_CODE_UNKNOWN, NetworkError, NotFoundError, QURLError, RuntimeError, TimeoutError, ValidationError, } from "./errors.js";
|
|
3
3
|
import { stripTrailingSlashes } from "./internal.js";
|
|
4
4
|
import { ShareLink } from "./share.js";
|
|
5
5
|
import { VERSION } from "./version.js";
|
|
@@ -73,6 +73,7 @@ class ResponseBodyMaterializationError extends Error {
|
|
|
73
73
|
}
|
|
74
74
|
const NO_PASSTHROUGH_STATUSES = [];
|
|
75
75
|
const BATCH_PASSTHROUGH_STATUSES = [400];
|
|
76
|
+
const DELEGATED_BATCH_PASSTHROUGH_STATUSES = [304];
|
|
76
77
|
/** Allowlist of known query-param keys for the `list()` endpoint. */
|
|
77
78
|
const LIST_PARAM_KEYS = [
|
|
78
79
|
"limit",
|
|
@@ -86,6 +87,24 @@ const LIST_PARAM_KEYS = [
|
|
|
86
87
|
"expires_after",
|
|
87
88
|
];
|
|
88
89
|
const REQUEST_OPTION_KEYS = ["idempotencyKey"];
|
|
90
|
+
const DELEGATED_BATCH_INPUT_KEYS = [
|
|
91
|
+
"mint_capability",
|
|
92
|
+
"grants",
|
|
93
|
+
];
|
|
94
|
+
const DELEGATED_BATCH_GRANT_KEYS = [
|
|
95
|
+
"expires_in",
|
|
96
|
+
"label",
|
|
97
|
+
"one_time_use",
|
|
98
|
+
"max_sessions",
|
|
99
|
+
"session_duration",
|
|
100
|
+
"access_policy",
|
|
101
|
+
];
|
|
102
|
+
const DELEGATED_BATCH_CREATE_OPTION_KEYS = [
|
|
103
|
+
"idempotencyKey",
|
|
104
|
+
];
|
|
105
|
+
const DELEGATED_BATCH_GET_OPTION_KEYS = [
|
|
106
|
+
"etag",
|
|
107
|
+
];
|
|
89
108
|
// Compile-time witness: `Exclude<keyof X, (typeof KEYS)[number]>` is
|
|
90
109
|
// `never` iff KEYS lists every key of X. Paired with the
|
|
91
110
|
// `satisfies readonly (keyof X)[]` clause on the array (which catches
|
|
@@ -96,6 +115,10 @@ function assertExhaustive(_) {
|
|
|
96
115
|
}
|
|
97
116
|
assertExhaustive(true);
|
|
98
117
|
assertExhaustive(true);
|
|
118
|
+
assertExhaustive(true);
|
|
119
|
+
assertExhaustive(true);
|
|
120
|
+
assertExhaustive(true);
|
|
121
|
+
assertExhaustive(true);
|
|
99
122
|
const CREATE_FIELD_KEYS = [
|
|
100
123
|
"type",
|
|
101
124
|
"target_url",
|
|
@@ -763,6 +786,14 @@ const MAX_TARGET_PATH = 2048;
|
|
|
763
786
|
const MAX_TAGS = 10;
|
|
764
787
|
const MAX_TAG_LENGTH = 50;
|
|
765
788
|
const MAX_AUTO_PAGINATION_PAGES = 10_000;
|
|
789
|
+
const MIN_DELEGATED_BATCH_IDEMPOTENCY_KEY = 32;
|
|
790
|
+
const MAX_DELEGATED_MINT_CAPABILITY = 8192;
|
|
791
|
+
const MAX_DELEGATED_ETAG = 96;
|
|
792
|
+
const MAX_DELEGATED_BATCH_ITEMS = 100;
|
|
793
|
+
const DELEGATED_BATCH_ID_PATTERN = /^dqb_[A-Za-z0-9_-]{22}$/;
|
|
794
|
+
const DELEGATED_QURL_ID_PATTERN = /^q_[0-9a-f]{11}$/;
|
|
795
|
+
const STRONG_ETAG_PATTERN = /^"[\x21\x23-\x7e]+"$/;
|
|
796
|
+
const UTC_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;
|
|
766
797
|
// Keep these identity contracts aligned with qurl-go and the public API.
|
|
767
798
|
const CONNECTOR_SLUG_PATTERN = /^[a-z][a-z0-9-]{1,62}[a-z0-9]$/;
|
|
768
799
|
// Current service schemas intentionally share this grammar, but keep the
|
|
@@ -1248,6 +1279,289 @@ function requireValidAccessPolicy(policy) {
|
|
|
1248
1279
|
}
|
|
1249
1280
|
}
|
|
1250
1281
|
}
|
|
1282
|
+
function validateCreateDelegatedQurlBatchInput(input) {
|
|
1283
|
+
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
1284
|
+
throw clientValidationError(`createDelegatedQurlBatch: input must be an object (got ${describeShape(input)})`);
|
|
1285
|
+
}
|
|
1286
|
+
const typed = input;
|
|
1287
|
+
requireNoUnknownFields(typed, DELEGATED_BATCH_INPUT_KEYS, "createDelegatedQurlBatch");
|
|
1288
|
+
if (typeof typed.mint_capability !== "string" ||
|
|
1289
|
+
typed.mint_capability.length < 1 ||
|
|
1290
|
+
typed.mint_capability.length > MAX_DELEGATED_MINT_CAPABILITY) {
|
|
1291
|
+
throw clientValidationError(`createDelegatedQurlBatch: mint_capability must be a string of 1-${MAX_DELEGATED_MINT_CAPABILITY} characters`);
|
|
1292
|
+
}
|
|
1293
|
+
if (!Array.isArray(typed.grants) ||
|
|
1294
|
+
typed.grants.length < 1 ||
|
|
1295
|
+
typed.grants.length > MAX_DELEGATED_BATCH_ITEMS) {
|
|
1296
|
+
throw clientValidationError(`createDelegatedQurlBatch: grants must contain 1-${MAX_DELEGATED_BATCH_ITEMS} items`);
|
|
1297
|
+
}
|
|
1298
|
+
for (const [index, grant] of typed.grants.entries()) {
|
|
1299
|
+
const field = `createDelegatedQurlBatch: grants[${index}]`;
|
|
1300
|
+
if (typeof grant !== "object" || grant === null || Array.isArray(grant)) {
|
|
1301
|
+
throw clientValidationError(`${field}: must be an object (got ${describeShape(grant)})`);
|
|
1302
|
+
}
|
|
1303
|
+
requireNoUnknownFields(grant, DELEGATED_BATCH_GRANT_KEYS, field);
|
|
1304
|
+
requireMaxUtf8Bytes(grant.label, `${field}.label`, MAX_LABEL);
|
|
1305
|
+
requireBooleanIfPresent(grant.one_time_use, `${field}.one_time_use`);
|
|
1306
|
+
requireMaxSessionsInRange(grant.max_sessions, `${field}.max_sessions`);
|
|
1307
|
+
for (const durationField of ["expires_in", "session_duration"]) {
|
|
1308
|
+
const value = grant[durationField];
|
|
1309
|
+
if (value !== undefined && (typeof value !== "string" || value.length === 0)) {
|
|
1310
|
+
throw clientValidationError(`${field}.${durationField}: must be a non-empty string`);
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
if (grant.access_policy !== undefined) {
|
|
1314
|
+
requireValidAccessPolicy(grant.access_policy);
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
function validateDelegatedBatchCreateOptions(options) {
|
|
1319
|
+
if (typeof options !== "object" || options === null || Array.isArray(options)) {
|
|
1320
|
+
throw clientValidationError("createDelegatedQurlBatch: options are required");
|
|
1321
|
+
}
|
|
1322
|
+
requireNoUnknownFields(options, DELEGATED_BATCH_CREATE_OPTION_KEYS, "createDelegatedQurlBatch options");
|
|
1323
|
+
const key = options.idempotencyKey;
|
|
1324
|
+
if (typeof key !== "string" ||
|
|
1325
|
+
key.length < MIN_DELEGATED_BATCH_IDEMPOTENCY_KEY ||
|
|
1326
|
+
key.length > MAX_IDEMPOTENCY_KEY ||
|
|
1327
|
+
!/^[!-~]+$/.test(key)) {
|
|
1328
|
+
throw clientValidationError(`createDelegatedQurlBatch: idempotencyKey must contain ${MIN_DELEGATED_BATCH_IDEMPOTENCY_KEY}-${MAX_IDEMPOTENCY_KEY} visible ASCII characters`);
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
function validateGetDelegatedQurlBatchOptions(options) {
|
|
1332
|
+
if (options === undefined)
|
|
1333
|
+
return;
|
|
1334
|
+
if (typeof options !== "object" || options === null || Array.isArray(options)) {
|
|
1335
|
+
throw clientValidationError(`getDelegatedQurlBatch: options must be an object (got ${describeShape(options)})`);
|
|
1336
|
+
}
|
|
1337
|
+
requireNoUnknownFields(options, DELEGATED_BATCH_GET_OPTION_KEYS, "getDelegatedQurlBatch options");
|
|
1338
|
+
const etag = options.etag;
|
|
1339
|
+
if (etag !== undefined &&
|
|
1340
|
+
(typeof etag !== "string" ||
|
|
1341
|
+
etag.length > MAX_DELEGATED_ETAG ||
|
|
1342
|
+
!STRONG_ETAG_PATTERN.test(etag))) {
|
|
1343
|
+
throw clientValidationError("getDelegatedQurlBatch: etag must be a valid strong ETag");
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
function delegatedResponseError(status, detail, requestId) {
|
|
1347
|
+
return unexpectedResponseError(`Delegated qURL batch ${detail}`, { status, requestId });
|
|
1348
|
+
}
|
|
1349
|
+
function delegatedResponseObject(value, status, label, requestId) {
|
|
1350
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
1351
|
+
throw delegatedResponseError(status, `${label} is not an object`, requestId);
|
|
1352
|
+
}
|
|
1353
|
+
return value;
|
|
1354
|
+
}
|
|
1355
|
+
function delegatedEnvelope(envelope, status) {
|
|
1356
|
+
if (typeof envelope.meta !== "object" || envelope.meta === null || Array.isArray(envelope.meta)) {
|
|
1357
|
+
throw delegatedResponseError(status, "response meta is not an object");
|
|
1358
|
+
}
|
|
1359
|
+
const meta = envelope.meta;
|
|
1360
|
+
if (typeof meta.request_id !== "string") {
|
|
1361
|
+
throw delegatedResponseError(status, "response meta has invalid request_id");
|
|
1362
|
+
}
|
|
1363
|
+
const data = delegatedResponseObject(envelope.data, status, "response data", meta.request_id);
|
|
1364
|
+
return { data, requestId: meta.request_id };
|
|
1365
|
+
}
|
|
1366
|
+
function requiredDelegatedHeader(envelope, name, status, requestId) {
|
|
1367
|
+
const headers = envelope.__http_headers;
|
|
1368
|
+
if (!headers || typeof headers.get !== "function") {
|
|
1369
|
+
throw delegatedResponseError(status, "response headers are unavailable", requestId);
|
|
1370
|
+
}
|
|
1371
|
+
const value = headers.get(name);
|
|
1372
|
+
if (value === null) {
|
|
1373
|
+
throw delegatedResponseError(status, `response is missing ${name}`, requestId);
|
|
1374
|
+
}
|
|
1375
|
+
return value;
|
|
1376
|
+
}
|
|
1377
|
+
function hasDelegatedNoStore(value) {
|
|
1378
|
+
if (value === null)
|
|
1379
|
+
return false;
|
|
1380
|
+
const directives = new Set(value.split(",").map((directive) => directive.trim().split("=", 1)[0].toLowerCase()));
|
|
1381
|
+
return directives.has("private") && directives.has("no-store");
|
|
1382
|
+
}
|
|
1383
|
+
function delegatedResponseHeaders(envelope, status, requestId) {
|
|
1384
|
+
const cacheControl = envelope.__http_headers?.get("Cache-Control") ?? null;
|
|
1385
|
+
if (cacheControl !== null) {
|
|
1386
|
+
if (!hasDelegatedNoStore(cacheControl)) {
|
|
1387
|
+
throw delegatedResponseError(status, "response has invalid Cache-Control", requestId);
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
else if (status !== 304) {
|
|
1391
|
+
requiredDelegatedHeader(envelope, "Cache-Control", status, requestId);
|
|
1392
|
+
}
|
|
1393
|
+
const etag = envelope.__http_headers?.get("ETag") ?? undefined;
|
|
1394
|
+
if (etag !== undefined && (etag.length > MAX_DELEGATED_ETAG || !STRONG_ETAG_PATTERN.test(etag))) {
|
|
1395
|
+
throw delegatedResponseError(status, "response has invalid strong ETag", requestId);
|
|
1396
|
+
}
|
|
1397
|
+
const rawRetryAfter = envelope.__http_headers?.get("Retry-After") ?? "";
|
|
1398
|
+
const trimmed = rawRetryAfter.trim();
|
|
1399
|
+
const seconds = /^\d+$/.test(trimmed)
|
|
1400
|
+
? Number(trimmed)
|
|
1401
|
+
: /^[A-Z][a-z]{2}, \d{2} [A-Z][a-z]{2} \d{4} \d{2}:\d{2}:\d{2} GMT$/.test(trimmed)
|
|
1402
|
+
? Math.ceil((Date.parse(trimmed) - Date.now()) / 1000)
|
|
1403
|
+
: NaN;
|
|
1404
|
+
const retryAfter = Number.isSafeInteger(seconds) && seconds > 0 && seconds <= RETRY_AFTER_PARSE_LIMIT_S
|
|
1405
|
+
? seconds
|
|
1406
|
+
: undefined;
|
|
1407
|
+
return { etag, retryAfter };
|
|
1408
|
+
}
|
|
1409
|
+
function isUtcTimestamp(value) {
|
|
1410
|
+
return (typeof value === "string" &&
|
|
1411
|
+
UTC_TIMESTAMP_PATTERN.test(value) &&
|
|
1412
|
+
Number.isFinite(Date.parse(value)));
|
|
1413
|
+
}
|
|
1414
|
+
function delegatedBatchBase(data, status, requestId, expectedBatchId) {
|
|
1415
|
+
if (typeof data.batch_id !== "string" ||
|
|
1416
|
+
!DELEGATED_BATCH_ID_PATTERN.test(data.batch_id) ||
|
|
1417
|
+
(expectedBatchId !== undefined && data.batch_id !== expectedBatchId)) {
|
|
1418
|
+
throw delegatedResponseError(status, "response has invalid batch_id", requestId);
|
|
1419
|
+
}
|
|
1420
|
+
if (!Number.isInteger(data.item_count) ||
|
|
1421
|
+
Number(data.item_count) < 1 ||
|
|
1422
|
+
Number(data.item_count) > MAX_DELEGATED_BATCH_ITEMS) {
|
|
1423
|
+
throw delegatedResponseError(status, "response has invalid item_count", requestId);
|
|
1424
|
+
}
|
|
1425
|
+
if (!isUtcTimestamp(data.submitted_at)) {
|
|
1426
|
+
throw delegatedResponseError(status, "response has invalid submitted_at", requestId);
|
|
1427
|
+
}
|
|
1428
|
+
return {
|
|
1429
|
+
batchId: data.batch_id,
|
|
1430
|
+
itemCount: Number(data.item_count),
|
|
1431
|
+
submittedAt: data.submitted_at,
|
|
1432
|
+
};
|
|
1433
|
+
}
|
|
1434
|
+
function validateDelegatedLocation(value, baseUrl, batchId, status, requestId) {
|
|
1435
|
+
let location;
|
|
1436
|
+
try {
|
|
1437
|
+
const base = new URL(`${baseUrl}/`);
|
|
1438
|
+
const relative = value.startsWith("/v1/delegated-qurl-batches/")
|
|
1439
|
+
? `${base.pathname.replace(/\/$/, "")}${value}`
|
|
1440
|
+
: value;
|
|
1441
|
+
location = new URL(relative, base);
|
|
1442
|
+
}
|
|
1443
|
+
catch {
|
|
1444
|
+
throw delegatedResponseError(status, "response has invalid Location", requestId);
|
|
1445
|
+
}
|
|
1446
|
+
const expected = new URL(`${baseUrl}/v1/delegated-qurl-batches/${batchId}`);
|
|
1447
|
+
if (location.username !== "" ||
|
|
1448
|
+
location.password !== "" ||
|
|
1449
|
+
location.search !== "" ||
|
|
1450
|
+
location.hash !== "" ||
|
|
1451
|
+
location.href !== expected.href) {
|
|
1452
|
+
throw delegatedResponseError(status, "response has invalid Location", requestId);
|
|
1453
|
+
}
|
|
1454
|
+
return location.href;
|
|
1455
|
+
}
|
|
1456
|
+
function validateDelegatedQurlLink(value) {
|
|
1457
|
+
if (typeof value !== "string")
|
|
1458
|
+
return false;
|
|
1459
|
+
try {
|
|
1460
|
+
const link = new URL(value);
|
|
1461
|
+
return (link.protocol === "https:" &&
|
|
1462
|
+
link.username === "" &&
|
|
1463
|
+
link.password === "" &&
|
|
1464
|
+
link.hash.length > 1);
|
|
1465
|
+
}
|
|
1466
|
+
catch {
|
|
1467
|
+
return false;
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
function validateDelegatedQurl(value, expectedQurlId, status, requestId) {
|
|
1471
|
+
const data = delegatedResponseObject(value, status, "response data", requestId);
|
|
1472
|
+
if (data.qurl_id !== expectedQurlId) {
|
|
1473
|
+
throw delegatedResponseError(status, "response has invalid qurl_id", requestId);
|
|
1474
|
+
}
|
|
1475
|
+
if (data.status !== "active" &&
|
|
1476
|
+
data.status !== "consumed" &&
|
|
1477
|
+
data.status !== "expired" &&
|
|
1478
|
+
data.status !== "revoked") {
|
|
1479
|
+
throw delegatedResponseError(status, "response has invalid status", requestId);
|
|
1480
|
+
}
|
|
1481
|
+
if (!isUtcTimestamp(data.expires_at) ||
|
|
1482
|
+
typeof data.one_time_use !== "boolean" ||
|
|
1483
|
+
!Number.isInteger(data.max_sessions) ||
|
|
1484
|
+
Number(data.max_sessions) < 0 ||
|
|
1485
|
+
!Number.isInteger(data.session_duration) ||
|
|
1486
|
+
Number(data.session_duration) <= 0 ||
|
|
1487
|
+
(data.label !== undefined && typeof data.label !== "string") ||
|
|
1488
|
+
(data.access_policy !== undefined &&
|
|
1489
|
+
(typeof data.access_policy !== "object" ||
|
|
1490
|
+
data.access_policy === null ||
|
|
1491
|
+
Array.isArray(data.access_policy)))) {
|
|
1492
|
+
throw delegatedResponseError(status, "response has invalid qURL metadata", requestId);
|
|
1493
|
+
}
|
|
1494
|
+
return { ...data, request_id: requestId };
|
|
1495
|
+
}
|
|
1496
|
+
function validateDelegatedBatchResults(value, itemCount, batchStatus, status, requestId) {
|
|
1497
|
+
if (!Array.isArray(value) || value.length !== itemCount) {
|
|
1498
|
+
throw delegatedResponseError(status, "terminal response has invalid results", requestId);
|
|
1499
|
+
}
|
|
1500
|
+
let succeeded = 0;
|
|
1501
|
+
const qurlIds = new Set();
|
|
1502
|
+
const links = new Set();
|
|
1503
|
+
const results = value.map((raw, index) => {
|
|
1504
|
+
const item = delegatedResponseObject(raw, status, `result ${index}`, requestId);
|
|
1505
|
+
if (item.index !== index) {
|
|
1506
|
+
throw delegatedResponseError(status, `result ${index} has invalid index`, requestId);
|
|
1507
|
+
}
|
|
1508
|
+
if (item.status === "succeeded") {
|
|
1509
|
+
if (item.error !== undefined && item.error !== null) {
|
|
1510
|
+
throw delegatedResponseError(status, `result ${index} has conflicting fields`, requestId);
|
|
1511
|
+
}
|
|
1512
|
+
const qurl = delegatedResponseObject(item.qurl, status, `result ${index} qurl`, requestId);
|
|
1513
|
+
if (typeof qurl.qurl_id !== "string" ||
|
|
1514
|
+
!DELEGATED_QURL_ID_PATTERN.test(qurl.qurl_id) ||
|
|
1515
|
+
!validateDelegatedQurlLink(qurl.qurl_link) ||
|
|
1516
|
+
!isUtcTimestamp(qurl.expires_at) ||
|
|
1517
|
+
qurlIds.has(qurl.qurl_id) ||
|
|
1518
|
+
links.has(qurl.qurl_link)) {
|
|
1519
|
+
throw delegatedResponseError(status, `result ${index} has invalid qurl`, requestId);
|
|
1520
|
+
}
|
|
1521
|
+
qurlIds.add(qurl.qurl_id);
|
|
1522
|
+
links.add(qurl.qurl_link);
|
|
1523
|
+
succeeded++;
|
|
1524
|
+
return {
|
|
1525
|
+
index,
|
|
1526
|
+
status: "succeeded",
|
|
1527
|
+
qurl: {
|
|
1528
|
+
qurl_id: qurl.qurl_id,
|
|
1529
|
+
qurl_link: qurl.qurl_link,
|
|
1530
|
+
expires_at: qurl.expires_at,
|
|
1531
|
+
},
|
|
1532
|
+
};
|
|
1533
|
+
}
|
|
1534
|
+
if (item.status !== "failed" || (item.qurl !== undefined && item.qurl !== null)) {
|
|
1535
|
+
throw delegatedResponseError(status, `result ${index} has invalid status`, requestId);
|
|
1536
|
+
}
|
|
1537
|
+
const error = delegatedResponseObject(item.error, status, `result ${index} error`, requestId);
|
|
1538
|
+
if (typeof error.code !== "string" ||
|
|
1539
|
+
error.code.length === 0 ||
|
|
1540
|
+
typeof error.message !== "string") {
|
|
1541
|
+
throw delegatedResponseError(status, `result ${index} has invalid error`, requestId);
|
|
1542
|
+
}
|
|
1543
|
+
return {
|
|
1544
|
+
index,
|
|
1545
|
+
status: "failed",
|
|
1546
|
+
error: { code: error.code, message: error.message },
|
|
1547
|
+
};
|
|
1548
|
+
});
|
|
1549
|
+
if ((batchStatus === "succeeded" && succeeded !== itemCount) ||
|
|
1550
|
+
(batchStatus === "failed" && succeeded !== 0) ||
|
|
1551
|
+
(batchStatus === "partially_failed" && (succeeded === 0 || succeeded === itemCount))) {
|
|
1552
|
+
throw delegatedResponseError(status, "terminal status does not match results", requestId);
|
|
1553
|
+
}
|
|
1554
|
+
return results;
|
|
1555
|
+
}
|
|
1556
|
+
function classifyDelegatedBatchCreateFailure(error, batchId) {
|
|
1557
|
+
if (!(error instanceof QURLError)) {
|
|
1558
|
+
throw new DelegatedBatchOutcomeUnknownError(new RuntimeError("Unexpected failure after delegated batch dispatch", { cause: error }), batchId);
|
|
1559
|
+
}
|
|
1560
|
+
if ((error.status >= 400 && error.status < 500 && error.status !== 408) || error.status === 501) {
|
|
1561
|
+
throw error;
|
|
1562
|
+
}
|
|
1563
|
+
throw new DelegatedBatchOutcomeUnknownError(error, batchId);
|
|
1564
|
+
}
|
|
1251
1565
|
// `format: uri` in the OpenAPI spec allows schemes the SDK doesn't
|
|
1252
1566
|
// usefully support (`ftp://`, `file://`, `javascript:`, …). This is a
|
|
1253
1567
|
// cheap client-side sanity check — the server is still the
|
|
@@ -2502,6 +2816,195 @@ export class QURLClient {
|
|
|
2502
2816
|
}
|
|
2503
2817
|
return requestId !== undefined ? { ...result, request_id: requestId } : result;
|
|
2504
2818
|
}
|
|
2819
|
+
/**
|
|
2820
|
+
* Start one durable delegated qURL batch. The SDK sends this mutation once.
|
|
2821
|
+
* If the result may have committed, retry explicitly with the same key and
|
|
2822
|
+
* semantic body.
|
|
2823
|
+
*/
|
|
2824
|
+
async createDelegatedQurlBatch(input, options) {
|
|
2825
|
+
validateCreateDelegatedQurlBatchInput(input);
|
|
2826
|
+
validateDelegatedBatchCreateOptions(options);
|
|
2827
|
+
let dispatched = false;
|
|
2828
|
+
let acceptedBatchId;
|
|
2829
|
+
try {
|
|
2830
|
+
const envelope = await this.rawRequest("POST", "/v1/delegated-qurl-batches", input, {
|
|
2831
|
+
requestOptions: options,
|
|
2832
|
+
retry: false,
|
|
2833
|
+
generateIdempotencyKey: false,
|
|
2834
|
+
captureResponseHeaders: true,
|
|
2835
|
+
onDispatch: () => {
|
|
2836
|
+
dispatched = true;
|
|
2837
|
+
},
|
|
2838
|
+
});
|
|
2839
|
+
const status = envelope.__http_status ?? 0;
|
|
2840
|
+
if (status !== 202) {
|
|
2841
|
+
throw delegatedResponseError(status, "create returned an unexpected success status");
|
|
2842
|
+
}
|
|
2843
|
+
const rawData = envelope.data;
|
|
2844
|
+
if (typeof rawData === "object" && rawData !== null && !Array.isArray(rawData)) {
|
|
2845
|
+
const candidate = rawData.batch_id;
|
|
2846
|
+
if (typeof candidate === "string" && DELEGATED_BATCH_ID_PATTERN.test(candidate)) {
|
|
2847
|
+
acceptedBatchId = candidate;
|
|
2848
|
+
}
|
|
2849
|
+
}
|
|
2850
|
+
const { data, requestId } = delegatedEnvelope(envelope, status);
|
|
2851
|
+
const base = delegatedBatchBase(data, status, requestId);
|
|
2852
|
+
if (data.status !== "queued" || base.itemCount !== input.grants.length) {
|
|
2853
|
+
throw delegatedResponseError(status, "acceptance data is inconsistent", requestId);
|
|
2854
|
+
}
|
|
2855
|
+
const responseHeaders = delegatedResponseHeaders(envelope, status, requestId);
|
|
2856
|
+
const location = validateDelegatedLocation(requiredDelegatedHeader(envelope, "Location", status, requestId), this.baseUrl, base.batchId, status, requestId);
|
|
2857
|
+
return {
|
|
2858
|
+
http_status: 202,
|
|
2859
|
+
batch_id: base.batchId,
|
|
2860
|
+
status: "queued",
|
|
2861
|
+
item_count: base.itemCount,
|
|
2862
|
+
submitted_at: base.submittedAt,
|
|
2863
|
+
etag: responseHeaders.etag,
|
|
2864
|
+
retry_after: responseHeaders.retryAfter,
|
|
2865
|
+
location,
|
|
2866
|
+
request_id: requestId,
|
|
2867
|
+
};
|
|
2868
|
+
}
|
|
2869
|
+
catch (error) {
|
|
2870
|
+
if (!dispatched)
|
|
2871
|
+
throw error;
|
|
2872
|
+
classifyDelegatedBatchCreateFailure(error, acceptedBatchId);
|
|
2873
|
+
}
|
|
2874
|
+
}
|
|
2875
|
+
/**
|
|
2876
|
+
* Read one delegated qURL batch state. One call performs one logical read;
|
|
2877
|
+
* callers retain control of the poll count and total deadline.
|
|
2878
|
+
*/
|
|
2879
|
+
async getDelegatedQurlBatch(batchId, options) {
|
|
2880
|
+
if (typeof batchId !== "string" || !DELEGATED_BATCH_ID_PATTERN.test(batchId)) {
|
|
2881
|
+
throw clientValidationError("getDelegatedQurlBatch: batchId must match dqb_ plus 22 URL-safe characters");
|
|
2882
|
+
}
|
|
2883
|
+
validateGetDelegatedQurlBatchOptions(options);
|
|
2884
|
+
const envelope = await this.rawRequest("GET", `/v1/delegated-qurl-batches/${encodeURIComponent(batchId)}`, undefined, {
|
|
2885
|
+
passthroughStatuses: DELEGATED_BATCH_PASSTHROUGH_STATUSES,
|
|
2886
|
+
allowEmptyPassthroughBody: true,
|
|
2887
|
+
ifNoneMatch: options?.etag,
|
|
2888
|
+
retry: false,
|
|
2889
|
+
captureResponseHeaders: true,
|
|
2890
|
+
});
|
|
2891
|
+
const status = envelope.__http_status ?? 0;
|
|
2892
|
+
if (status === 304) {
|
|
2893
|
+
if (envelope.__http_body_empty !== true || options?.etag === undefined) {
|
|
2894
|
+
throw delegatedResponseError(status, "304 response is inconsistent");
|
|
2895
|
+
}
|
|
2896
|
+
const responseHeaders = delegatedResponseHeaders(envelope, status);
|
|
2897
|
+
if (responseHeaders.etag !== undefined && responseHeaders.etag !== options.etag) {
|
|
2898
|
+
throw delegatedResponseError(status, "304 response changed the ETag");
|
|
2899
|
+
}
|
|
2900
|
+
return {
|
|
2901
|
+
http_status: 304,
|
|
2902
|
+
etag: responseHeaders.etag ?? options.etag,
|
|
2903
|
+
...(responseHeaders.retryAfter === undefined
|
|
2904
|
+
? {}
|
|
2905
|
+
: { retry_after: responseHeaders.retryAfter }),
|
|
2906
|
+
};
|
|
2907
|
+
}
|
|
2908
|
+
if (status !== 200 && status !== 202) {
|
|
2909
|
+
throw delegatedResponseError(status, "read returned an unexpected success status");
|
|
2910
|
+
}
|
|
2911
|
+
const { data, requestId } = delegatedEnvelope(envelope, status);
|
|
2912
|
+
const base = delegatedBatchBase(data, status, requestId, batchId);
|
|
2913
|
+
if (status === 202) {
|
|
2914
|
+
if (data.status !== "queued" && data.status !== "running") {
|
|
2915
|
+
throw delegatedResponseError(status, "pending data has a terminal status", requestId);
|
|
2916
|
+
}
|
|
2917
|
+
const responseHeaders = delegatedResponseHeaders(envelope, status, requestId);
|
|
2918
|
+
return {
|
|
2919
|
+
http_status: 202,
|
|
2920
|
+
batch_id: base.batchId,
|
|
2921
|
+
status: data.status,
|
|
2922
|
+
item_count: base.itemCount,
|
|
2923
|
+
submitted_at: base.submittedAt,
|
|
2924
|
+
etag: responseHeaders.etag,
|
|
2925
|
+
retry_after: responseHeaders.retryAfter,
|
|
2926
|
+
request_id: requestId,
|
|
2927
|
+
};
|
|
2928
|
+
}
|
|
2929
|
+
if (data.status !== "succeeded" &&
|
|
2930
|
+
data.status !== "partially_failed" &&
|
|
2931
|
+
data.status !== "failed") {
|
|
2932
|
+
throw delegatedResponseError(status, "terminal data has a non-terminal status", requestId);
|
|
2933
|
+
}
|
|
2934
|
+
let results;
|
|
2935
|
+
try {
|
|
2936
|
+
if (!isUtcTimestamp(data.completed_at)) {
|
|
2937
|
+
throw delegatedResponseError(status, "terminal data has invalid completed_at", requestId);
|
|
2938
|
+
}
|
|
2939
|
+
results = validateDelegatedBatchResults(data.results, base.itemCount, data.status, status, requestId);
|
|
2940
|
+
}
|
|
2941
|
+
catch (error) {
|
|
2942
|
+
const partialQurlIds = Array.isArray(data.results)
|
|
2943
|
+
? [
|
|
2944
|
+
...new Set(data.results.flatMap((item) => item &&
|
|
2945
|
+
typeof item === "object" &&
|
|
2946
|
+
item.status === "succeeded" &&
|
|
2947
|
+
typeof item.qurl?.qurl_id === "string" &&
|
|
2948
|
+
DELEGATED_QURL_ID_PATTERN.test(item.qurl.qurl_id)
|
|
2949
|
+
? [item.qurl.qurl_id]
|
|
2950
|
+
: [])),
|
|
2951
|
+
]
|
|
2952
|
+
: [];
|
|
2953
|
+
if (error instanceof QURLError)
|
|
2954
|
+
Object.defineProperty(error, "partialQurlIds", {
|
|
2955
|
+
value: Object.freeze(partialQurlIds),
|
|
2956
|
+
enumerable: true,
|
|
2957
|
+
});
|
|
2958
|
+
throw error;
|
|
2959
|
+
}
|
|
2960
|
+
// This is the caller's only copy of the bearer links. Do not discard a
|
|
2961
|
+
// valid terminal body because an intermediary removed a cache validator;
|
|
2962
|
+
// qurl-service owns the required no-store response policy.
|
|
2963
|
+
const cacheControl = envelope.__http_headers?.get("Cache-Control") ?? null;
|
|
2964
|
+
if (!hasDelegatedNoStore(cacheControl)) {
|
|
2965
|
+
this.log("delegated batch terminal response is missing private, no-store", {
|
|
2966
|
+
batch_id: base.batchId,
|
|
2967
|
+
});
|
|
2968
|
+
}
|
|
2969
|
+
const etag = envelope.__http_headers?.get("ETag") ?? undefined;
|
|
2970
|
+
const terminalEtag = etag !== undefined && etag.length <= MAX_DELEGATED_ETAG && STRONG_ETAG_PATTERN.test(etag)
|
|
2971
|
+
? etag
|
|
2972
|
+
: undefined;
|
|
2973
|
+
return {
|
|
2974
|
+
http_status: 200,
|
|
2975
|
+
batch_id: base.batchId,
|
|
2976
|
+
status: data.status,
|
|
2977
|
+
item_count: base.itemCount,
|
|
2978
|
+
submitted_at: base.submittedAt,
|
|
2979
|
+
completed_at: data.completed_at,
|
|
2980
|
+
results,
|
|
2981
|
+
...(terminalEtag === undefined ? {} : { etag: terminalEtag }),
|
|
2982
|
+
request_id: requestId,
|
|
2983
|
+
};
|
|
2984
|
+
}
|
|
2985
|
+
/** Read owner-visible metadata for one delegated qURL. */
|
|
2986
|
+
async getDelegatedQurl(qurlId) {
|
|
2987
|
+
if (typeof qurlId !== "string" || !DELEGATED_QURL_ID_PATTERN.test(qurlId)) {
|
|
2988
|
+
throw clientValidationError("getDelegatedQurl: qurlId must match q_ plus 11 lowercase hexadecimal characters");
|
|
2989
|
+
}
|
|
2990
|
+
const envelope = await this.rawRequest("GET", `/v1/delegated-qurls/${encodeURIComponent(qurlId)}`);
|
|
2991
|
+
const status = envelope.__http_status ?? 0;
|
|
2992
|
+
if (status !== 200) {
|
|
2993
|
+
throw delegatedResponseError(status, "read returned an unexpected success status");
|
|
2994
|
+
}
|
|
2995
|
+
const { data, requestId } = delegatedEnvelope(envelope, status);
|
|
2996
|
+
return validateDelegatedQurl(data, qurlId, status, requestId);
|
|
2997
|
+
}
|
|
2998
|
+
/**
|
|
2999
|
+
* Revoke one delegated qURL. DELETE is never retried automatically. A 503
|
|
3000
|
+
* `mutation_outcome_unknown` is safe to retry with the same qURL ID.
|
|
3001
|
+
*/
|
|
3002
|
+
async deleteDelegatedQurl(qurlId) {
|
|
3003
|
+
if (typeof qurlId !== "string" || !DELEGATED_QURL_ID_PATTERN.test(qurlId)) {
|
|
3004
|
+
throw clientValidationError("deleteDelegatedQurl: qurlId must match q_ plus 11 lowercase hexadecimal characters");
|
|
3005
|
+
}
|
|
3006
|
+
await this.requestNoContent(`/v1/delegated-qurls/${encodeURIComponent(qurlId)}`);
|
|
3007
|
+
}
|
|
2505
3008
|
/**
|
|
2506
3009
|
* Get a qURL resource and its access tokens.
|
|
2507
3010
|
*
|
|
@@ -3254,7 +3757,7 @@ export class QURLClient {
|
|
|
3254
3757
|
*/
|
|
3255
3758
|
async rawRequest(method, path, body, rawOptions = {}) {
|
|
3256
3759
|
const url = `${this.baseUrl}${path}`;
|
|
3257
|
-
const { passthroughStatuses = NO_PASSTHROUGH_STATUSES, requestOptions, allowEmptySuccessBody = false, retry = true, generateIdempotencyKey = true, } = rawOptions;
|
|
3760
|
+
const { passthroughStatuses = NO_PASSTHROUGH_STATUSES, requestOptions, allowEmptySuccessBody = false, allowEmptyPassthroughBody = false, retry = true, generateIdempotencyKey = true, ifNoneMatch, captureResponseHeaders = false, onDispatch, } = rawOptions;
|
|
3258
3761
|
const idempotencyKey = idempotencyKeyForRequest(method, requestOptions, generateIdempotencyKey);
|
|
3259
3762
|
const headers = {
|
|
3260
3763
|
Authorization: `Bearer ${this.apiKey}`,
|
|
@@ -3267,6 +3770,9 @@ export class QURLClient {
|
|
|
3267
3770
|
if (idempotencyKey !== undefined) {
|
|
3268
3771
|
headers["Idempotency-Key"] = idempotencyKey;
|
|
3269
3772
|
}
|
|
3773
|
+
if (ifNoneMatch !== undefined) {
|
|
3774
|
+
headers["If-None-Match"] = ifNoneMatch;
|
|
3775
|
+
}
|
|
3270
3776
|
// Reads may retry transient statuses and transport failures. POST/PATCH
|
|
3271
3777
|
// keep status-code retries limited to rate limits and reuse the same
|
|
3272
3778
|
// Idempotency-Key for fetch-level failures. DELETE is deliberately never
|
|
@@ -3303,6 +3809,7 @@ export class QURLClient {
|
|
|
3303
3809
|
// attempt shouldn't poison the next try's deadline. Total
|
|
3304
3810
|
// request bound: roughly `timeout * (maxRetries + 1) +
|
|
3305
3811
|
// sum(retryDelay)`.
|
|
3812
|
+
onDispatch?.();
|
|
3306
3813
|
response = await this.fetchFn(url, {
|
|
3307
3814
|
method,
|
|
3308
3815
|
headers,
|
|
@@ -3478,16 +3985,20 @@ export class QURLClient {
|
|
|
3478
3985
|
data: undefined,
|
|
3479
3986
|
__http_status: response.status,
|
|
3480
3987
|
__http_body_empty: responseBody.length === 0,
|
|
3988
|
+
__http_headers: captureResponseHeaders ? response.headers : undefined,
|
|
3481
3989
|
};
|
|
3482
3990
|
}
|
|
3483
3991
|
// Exact no-content helpers must inspect both axes of the success
|
|
3484
3992
|
// contract. Let only those callers observe an empty non-204 response;
|
|
3485
3993
|
// body-returning methods still reject it as non-JSON below.
|
|
3486
|
-
if (response.ok && allowEmptySuccessBody
|
|
3994
|
+
if (((response.ok && allowEmptySuccessBody) ||
|
|
3995
|
+
(isPassthrough && allowEmptyPassthroughBody)) &&
|
|
3996
|
+
responseBody.length === 0) {
|
|
3487
3997
|
return {
|
|
3488
3998
|
data: undefined,
|
|
3489
3999
|
__http_status: response.status,
|
|
3490
4000
|
__http_body_empty: true,
|
|
4001
|
+
__http_headers: captureResponseHeaders ? response.headers : undefined,
|
|
3491
4002
|
};
|
|
3492
4003
|
}
|
|
3493
4004
|
try {
|
|
@@ -3497,6 +4008,7 @@ export class QURLClient {
|
|
|
3497
4008
|
__http_status: response.status,
|
|
3498
4009
|
// JSON.parse("") throws, so parsed JSON is necessarily non-empty.
|
|
3499
4010
|
__http_body_empty: false,
|
|
4011
|
+
__http_headers: captureResponseHeaders ? response.headers : undefined,
|
|
3500
4012
|
};
|
|
3501
4013
|
}
|
|
3502
4014
|
catch {
|
|
@@ -3607,14 +4119,13 @@ export class QURLClient {
|
|
|
3607
4119
|
const header = response.headers.get("Retry-After");
|
|
3608
4120
|
if (!header)
|
|
3609
4121
|
return undefined;
|
|
3610
|
-
// TODO: parse HTTP-date format per RFC 7231 §7.1.3 — currently only
|
|
3611
|
-
// handles delta-seconds; HTTP-date headers fall through to the
|
|
3612
|
-
// exponential-backoff branch in `retryDelay`. Tracked in #61.
|
|
3613
|
-
//
|
|
3614
|
-
// Digit-only pre-check rather than `parseInt` alone: `parseInt("60abc")`
|
|
3615
|
-
// returns `60` and would silently honor a malformed header. The
|
|
3616
|
-
// strict check makes any deviation observable (debug log) instead.
|
|
3617
4122
|
const trimmed = header.trim();
|
|
4123
|
+
if (/^[A-Z][a-z]{2}, \d{2} [A-Z][a-z]{2} \d{4} \d{2}:\d{2}:\d{2} GMT$/.test(trimmed)) {
|
|
4124
|
+
const seconds = Math.ceil((Date.parse(trimmed) - Date.now()) / 1000);
|
|
4125
|
+
return Number.isSafeInteger(seconds) && seconds > 0 && seconds <= RETRY_AFTER_PARSE_LIMIT_S
|
|
4126
|
+
? seconds
|
|
4127
|
+
: undefined;
|
|
4128
|
+
}
|
|
3618
4129
|
if (!/^\d+$/.test(trimmed)) {
|
|
3619
4130
|
this.log("Retry-After header was non-numeric, using exponential backoff", {
|
|
3620
4131
|
header_value: header.slice(0, 100),
|