diff --git a/THIRD-PARTY b/THIRD-PARTY index 96d4911..9dfd160 100644 --- a/THIRD-PARTY +++ b/THIRD-PARTY @@ -832,7 +832,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following npm package may be included in this product: - - @aws-sdk/core@3.975.3 + - @aws-sdk/core@3.977.1 This package contains the following license: @@ -1042,16 +1042,16 @@ Apache License The following npm packages may be included in this product: - - @aws-sdk/credential-provider-env@3.972.59 + - @aws-sdk/credential-provider-env@3.972.62 - @aws-sdk/credential-provider-ini@3.973.4 - @aws-sdk/credential-provider-node@3.972.70 - @aws-sdk/token-providers@3.1088.0 - @aws-sdk/types@3.974.2 - - @aws-sdk/xml-builder@3.972.36 + - @aws-sdk/xml-builder@3.972.37 - @smithy/credential-provider-imds@4.4.11 - @smithy/fetch-http-handler@5.6.8 - @smithy/node-http-handler@4.9.12 - - @smithy/signature-v4@5.6.7 + - @smithy/signature-v4@5.6.11 These packages each contain the following license: diff --git a/dist/index.js b/dist/index.js index d729ef2..ff5152e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -32206,11 +32206,12 @@ var init_client3 = __esm({ }); // node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js -var getDateHeader; +var getDateHeader, getAgeHeader; var init_getDateHeader = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js"() { init_protocols(); getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0; + getAgeHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.age ?? response.headers?.Age : void 0; } }); @@ -32222,26 +32223,21 @@ var init_getSkewCorrectedDate = __esm({ } }); -// node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js -var isClockSkewed; -var init_isClockSkewed = __esm({ - "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js"() { - init_getSkewCorrectedDate(); - isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5; - } -}); - // node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js var getUpdatedSystemClockOffset; var init_getUpdatedSystemClockOffset = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js"() { - init_isClockSkewed(); - getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => { - const clockTimeInMs = Date.parse(clockTime); - if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { - return clockTimeInMs - Date.now(); + getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset, timeRequestSent, ageHeader) => { + if (ageHeader !== void 0) { + return currentSystemClockOffset; } - return currentSystemClockOffset; + const serverTime = Date.parse(clockTime); + const timeResponseReceived = Date.now(); + if (timeRequestSent !== void 0 && timeResponseReceived - timeRequestSent > 9e5) { + return currentSystemClockOffset; + } + const candidateSkew = timeRequestSent !== void 0 ? serverTime - (timeRequestSent + timeResponseReceived) / 2 : serverTime - timeResponseReceived; + return candidateSkew; }; } }); @@ -32300,9 +32296,14 @@ var init_AwsSdkSigV4Signer = __esm({ signingName = second?.signingName ?? signingName; } } - signingProperties._preRequestSystemClockOffset = config.systemClockOffset; + const noSkewCorrection = await config.disableClockSkewCorrection?.() === true; + signingProperties._disableClockSkewCorrection = noSkewCorrection; + if (!noSkewCorrection) { + signingProperties._preRequestSystemClockOffset = config.systemClockOffset; + signingProperties._requestSentAt = Date.now(); + } const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingDate: noSkewCorrection ? /* @__PURE__ */ new Date() : getSkewCorrectedDate(config.systemClockOffset), signingRegion, signingService: signingName }); @@ -32311,27 +32312,36 @@ var init_AwsSdkSigV4Signer = __esm({ errorHandler(signingProperties) { return (error3) => { const errorException = error3; - const serverTime = errorException.ServerTime ?? getDateHeader(errorException.$response); - if (serverTime) { - const config = throwSigningPropertyError("config", signingProperties.config); - const preRequestOffset = signingProperties._preRequestSystemClockOffset; - const newOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset); - const isLocalCorrection = newOffset !== config.systemClockOffset; - const isConcurrentCorrection = preRequestOffset !== void 0 && preRequestOffset !== newOffset; - const clockSkewCorrected = isLocalCorrection || isConcurrentCorrection; - if (clockSkewCorrected && errorException.$metadata) { + if (!signingProperties._disableClockSkewCorrection) { + const serverTime = errorException.ServerTime ?? getDateHeader(errorException.$response); + if (serverTime) { + const config = throwSigningPropertyError("config", signingProperties.config); + const preRequestOffset = signingProperties._preRequestSystemClockOffset; + const timeRequestSent = signingProperties._requestSentAt; + const ageHeader = getAgeHeader(errorException.$response); + const newOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset, timeRequestSent, ageHeader); config.systemClockOffset = newOffset; - errorException.$metadata.clockSkewCorrected = true; + const skewExceedsThreshold = Math.abs(newOffset) >= 24e4; + const isLocalCorrection = newOffset !== preRequestOffset; + const isConcurrentCorrection = preRequestOffset !== void 0 && preRequestOffset !== newOffset; + if (skewExceedsThreshold && (isLocalCorrection || isConcurrentCorrection) && errorException.$metadata) { + errorException.$metadata.clockSkewCorrected = true; + } } } throw error3; }; } successHandler(httpResponse, signingProperties) { + if (signingProperties._disableClockSkewCorrection) { + return; + } const dateHeader = getDateHeader(httpResponse); if (dateHeader) { const config = throwSigningPropertyError("config", signingProperties.config); - config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset); + const timeRequestSent = signingProperties._requestSentAt; + const ageHeader = getAgeHeader(httpResponse); + config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset, timeRequestSent, ageHeader); } } }; @@ -32354,9 +32364,14 @@ var init_AwsSdkSigV4ASigner = __esm({ const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties); const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.(); const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); - signingProperties._preRequestSystemClockOffset = config.systemClockOffset; + const noSkewCorrection = await config.disableClockSkewCorrection?.() === true; + signingProperties._disableClockSkewCorrection = noSkewCorrection; + if (!noSkewCorrection) { + signingProperties._preRequestSystemClockOffset = config.systemClockOffset; + signingProperties._requestSentAt = Date.now(); + } const signedRequest = await signer.sign(httpRequest, { - signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingDate: noSkewCorrection ? /* @__PURE__ */ new Date() : getSkewCorrectedDate(config.systemClockOffset), signingRegion: multiRegionOverride, signingService: signingName }); @@ -33011,13 +33026,13 @@ function bindCallerConfig(config, credentialsProvider) { fn.configBound = true; return fn; } -var import_signature_v4, resolveAwsSdkSigV4Config, resolveAWSSDKSigV4Config; +var import_signature_v4, bindResolveAwsSdkSigV4Config; var init_resolveAwsSdkSigV4Config = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js"() { init_client3(); init_dist_es(); import_signature_v4 = __toESM(require_dist_cjs2()); - resolveAwsSdkSigV4Config = (config) => { + bindResolveAwsSdkSigV4Config = (defaultDisableClockSkewCorrection) => (config) => { let inputCredentials = config.credentials; let isUserSupplied = !!config.credentials; let resolvedCredentials = void 0; @@ -33109,11 +33124,11 @@ var init_resolveAwsSdkSigV4Config = __esm({ const resolvedConfig = Object.assign(config, { systemClockOffset, signingEscapePath, - signer + signer, + disableClockSkewCorrection: normalizeProvider2(config.disableClockSkewCorrection ?? defaultDisableClockSkewCorrection) }); return resolvedConfig; }; - resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; } }); @@ -33128,6 +33143,31 @@ var init_aws_sdk = __esm({ } }); +// node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js +var ENV_DISABLE_CLOCK_SKEW_CORRECTION, CONFIG_DISABLE_CLOCK_SKEW_CORRECTION, NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS; +var init_clock_skew_node_config = __esm({ + "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js"() { + init_config2(); + ENV_DISABLE_CLOCK_SKEW_CORRECTION = "AWS_DISABLE_CLOCK_SKEW_CORRECTION"; + CONFIG_DISABLE_CLOCK_SKEW_CORRECTION = "disable_clock_skew_correction"; + NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS = { + environmentVariableSelector: (env2) => booleanSelector(env2, ENV_DISABLE_CLOCK_SKEW_CORRECTION, SelectorType.ENV), + configFileSelector: (profile) => booleanSelector(profile, CONFIG_DISABLE_CLOCK_SKEW_CORRECTION, SelectorType.CONFIG), + default: false + }; + } +}); + +// node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js +var DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION; +var init_clock_skew_defaults = __esm({ + "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js"() { + init_config2(); + init_clock_skew_node_config(); + DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION = loadConfig(NODE_DISABLE_CLOCK_SKEW_CORRECTION_CONFIG_OPTIONS); + } +}); + // node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js var httpAuthSchemes_exports = {}; __export(httpAuthSchemes_exports, { @@ -33142,10 +33182,15 @@ __export(httpAuthSchemes_exports, { resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, validateSigningProperties: () => validateSigningProperties }); +var resolveAwsSdkSigV4Config, resolveAWSSDKSigV4Config; var init_httpAuthSchemes2 = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js"() { init_aws_sdk(); init_getBearerTokenEnvKey(); + init_aws_sdk(); + init_clock_skew_defaults(); + resolveAwsSdkSigV4Config = bindResolveAwsSdkSigV4Config(DEFAULT_DISABLE_CLOCK_SKEW_CORRECTION); + resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; } }); @@ -36354,11 +36399,17 @@ function jsonReviver(key, value, context) { if (context?.source) { const numericString = context.source; if (typeof value === "number") { - if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) { - const isFractional = numericString.includes("."); - if (isFractional) { + const inSafeRange = value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER; + if (!inSafeRange || numericString !== String(value)) { + if (inSafeRange && /[eE]/.test(numericString) && String(Number(numericString)) === String(value)) { + return value; + } + if (isFractionalNumeric(numericString)) { return new NumericValue(numericString, "bigDecimal"); } else { + if (/[eE]/.test(numericString)) { + return BigInt(Number(numericString)); + } return BigInt(numericString); } } @@ -36366,12 +36417,71 @@ function jsonReviver(key, value, context) { } return value; } +function isFractionalNumeric(s2) { + const dotIndex = s2.indexOf("."); + if (dotIndex === -1) { + return false; + } + const eIndex = s2.search(/[eE]/); + if (eIndex === -1) { + return true; + } + const fracDigits = eIndex - dotIndex - 1; + const exp = parseInt(s2.slice(eIndex + 1), 10); + return exp < fracDigits; +} var init_jsonReviver = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReviver.js"() { init_serde(); } }); +// node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/needsReviver.js +function needsReviver(schema) { + const ns = NormalizedSchema.of(schema); + const raw = ns.getSchema(); + if (Array.isArray(raw) && ns.isStructSchema()) { + if (REVIVER_SYMBOL in raw) { + return raw[REVIVER_SYMBOL]; + } + const result = _check(ns, /* @__PURE__ */ new Set()); + raw[REVIVER_SYMBOL] = result; + return result; + } + return _check(ns, /* @__PURE__ */ new Set()); +} +function _check(ns, seen) { + const raw = ns.getSchema(); + if (seen.has(raw)) { + return false; + } + seen.add(raw); + if (ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) { + return true; + } + if (ns.isStructSchema()) { + for (const [, memberSchema] of ns.structIterator()) { + if (_check(memberSchema, seen)) { + return true; + } + } + } else if (ns.isListSchema() || ns.isMapSchema()) { + if (_check(ns.getValueSchema(), seen)) { + return true; + } + } else if (ns.isDocumentSchema()) { + return true; + } + return false; +} +var REVIVER_SYMBOL; +var init_needsReviver = __esm({ + "node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/needsReviver.js"() { + init_schema(); + REVIVER_SYMBOL = /* @__PURE__ */ Symbol.for("@aws-sdk/reviver"); + } +}); + // node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js var collectBodyString; var init_common = __esm({ @@ -36382,26 +36492,67 @@ var init_common = __esm({ } }); +// node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/detectBufferParsing.js +function detectBufferParsing() { + if (canParseBuffer === void 0) { + try { + if (typeof Buffer !== "function") { + canParseBuffer = false; + } else { + const result = JSON.parse(Buffer.from([123, 125])); + canParseBuffer = result !== null && typeof result === "object"; + } + } catch { + canParseBuffer = false; + } + } + return canParseBuffer; +} +var canParseBuffer; +var init_detectBufferParsing = __esm({ + "node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/detectBufferParsing.js"() { + } +}); + // node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js -var parseJsonBody, parseJsonErrorBody, findKey, sanitizeErrorCode, loadRestJsonErrorCode, loadJsonRpcErrorCode, loadErrorCode; +async function parseJsonBody(streamBody, context, schema) { + let parsingInput; + if (detectBufferParsing() && typeof streamBody?.[Symbol.asyncIterator] === "function") { + const buffer = await collectBody(streamBody, context); + if (typeof Buffer === "function") { + if (Buffer.isBuffer(buffer)) { + parsingInput = buffer; + } else { + parsingInput = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + } + } + if (!parsingInput) { + parsingInput = await collectBodyString(streamBody, context); + } + if (parsingInput.length === 0) { + return {}; + } + const reviver = schema && needsReviver(schema) ? jsonReviver : void 0; + try { + return JSON.parse(parsingInput, reviver); + } catch (e5) { + if (e5?.name === "SyntaxError") { + Object.defineProperty(e5, "$responseBodyText", { + value: typeof parsingInput === "string" ? parsingInput : parsingInput.toString("utf8") + }); + } + throw e5; + } +} +var parseJsonErrorBody, findKey, sanitizeErrorCode, loadRestJsonErrorCode, loadJsonRpcErrorCode, loadErrorCode; var init_parseJsonBody = __esm({ "node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js"() { + init_protocols(); init_common(); - parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { - if (encoded.length) { - try { - return JSON.parse(encoded); - } catch (e5) { - if (e5?.name === "SyntaxError") { - Object.defineProperty(e5, "$responseBodyText", { - value: encoded - }); - } - throw e5; - } - } - return {}; - }); + init_detectBufferParsing(); + init_jsonReviver(); + init_needsReviver(); parseJsonErrorBody = async (errorBody, context) => { const value = await parseJsonBody(errorBody, context); value.message = value.message ?? value.Message; @@ -36457,6 +36608,15 @@ var init_parseJsonBody = __esm({ } }); +// node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js +function writeKey(obj) { + Object.defineProperty(obj, "__proto__", { value: void 0, writable: true, enumerable: true, configurable: true }); +} +var init_writeKey = __esm({ + "node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js"() { + } +}); + // node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js var JsonShapeDeserializer; var init_JsonShapeDeserializer = __esm({ @@ -36468,7 +36628,9 @@ var init_JsonShapeDeserializer = __esm({ init_ConfigurableSerdeContext(); init_UnionSerde(); init_jsonReviver(); + init_needsReviver(); init_parseJsonBody(); + init_writeKey(); JsonShapeDeserializer = class extends SerdeContextConfig { settings; constructor(settings) { @@ -36476,7 +36638,8 @@ var init_JsonShapeDeserializer = __esm({ this.settings = settings; } async read(schema, data3) { - return this._read(schema, typeof data3 === "string" ? JSON.parse(data3, jsonReviver) : await parseJsonBody(data3, this.serdeContext)); + const reviver = needsReviver(schema) ? jsonReviver : void 0; + return this._read(schema, typeof data3 === "string" ? JSON.parse(data3, reviver) : await parseJsonBody(data3, this.serdeContext, schema)); } readObject(schema, data3) { return this._read(schema, data3); @@ -36536,6 +36699,9 @@ var init_JsonShapeDeserializer = __esm({ const mapMember = ns.getValueSchema(); const out = {}; for (const _k in value) { + if (_k === "__proto__") { + writeKey(out); + } out[_k] = this._read(mapMember, value[_k]); } return out; @@ -36594,6 +36760,9 @@ var init_JsonShapeDeserializer = __esm({ if (isObject) { const out = Array.isArray(value) ? [] : {}; for (const k5 in value) { + if (k5 === "__proto__") { + writeKey(out); + } const v = value[k5]; if (v instanceof NumericValue) { out[k5] = v; @@ -36674,6 +36843,7 @@ var init_JsonShapeSerializer = __esm({ init_serde(); init_ConfigurableSerdeContext(); init_jsonReplacer(); + init_writeKey(); JsonShapeSerializer = class extends SerdeContextConfig { settings; buffer; @@ -36735,6 +36905,9 @@ var init_JsonShapeSerializer = __esm({ const { $unknown } = record; if (Array.isArray($unknown)) { const [k5, v] = $unknown; + if (k5 === "__proto__") { + writeKey(out); + } out[k5] = this._write(15, v); } } else if (typeof record.__type === "string") { @@ -36766,6 +36939,9 @@ var init_JsonShapeSerializer = __esm({ for (const _k in value) { const _v = value[_k]; if (sparse || _v != null) { + if (_k === "__proto__") { + writeKey(out); + } out[_k] = this._write(mapMember, _v); } } @@ -36831,6 +37007,9 @@ var init_JsonShapeSerializer = __esm({ const out = Array.isArray(value) ? [] : {}; for (const k5 in value) { const v = value[k5]; + if (k5 === "__proto__") { + writeKey(out); + } if (v instanceof NumericValue) { this.useReplacer = true; out[k5] = v; @@ -37247,6 +37426,9 @@ var require_dist_cjs8 = __commonJS({ return xmlText += !hasChildren ? "/>" : `>${this.children.map((c5) => c5.toString()).join("")}`; } }; + function writeKey2(obj) { + Object.defineProperty(obj, "__proto__", { value: void 0, writable: true, enumerable: true, configurable: true }); + } function parseXML3(xml) { const state2 = new AwsXmlParser(xml); return state2.parse(); @@ -37328,7 +37510,7 @@ var require_dist_cjs8 = __commonJS({ tag2 += p3.x[p3.i++]; } let hasAttrs = false; - const attrs = /* @__PURE__ */ Object.create(null); + const attrs = {}; while (p3.i < p3.z) { p3.trim(); if (">/".includes(p3.x[p3.i])) { @@ -37344,6 +37526,9 @@ var require_dist_cjs8 = __commonJS({ } ++p3.i; p3.trim(); + if (name === "__proto__") { + writeKey2(attrs); + } attrs[name] = p3.readAttrValue(); hasAttrs = true; } @@ -37356,7 +37541,6 @@ var require_dist_cjs8 = __commonJS({ throw new Error("@aws-sdk XML parse error: expected > at the end of self-closing tag."); } ++p3.i; - Object.setPrototypeOf(attrs, Object.prototype); return { tag: tag2, value: hasAttrs ? attrs : "" }; } if (p3.x[p3.i] !== ">") { @@ -37408,7 +37592,7 @@ var require_dist_cjs8 = __commonJS({ } return { tag: tag2, value: text }; } - const obj = /* @__PURE__ */ Object.create(null); + const obj = {}; for (const text of textParts) { if (text.trim() === "" && text.includes("\n")) { continue; @@ -37416,6 +37600,9 @@ var require_dist_cjs8 = __commonJS({ obj["#text"] = "#text" in obj ? obj["#text"] + text : text; } for (const child of childTags) { + if (child.tag === "__proto__") { + writeKey2(obj); + } if (child.tag in obj) { if (Array.isArray(obj[child.tag])) { obj[child.tag].push(child.value); @@ -37427,9 +37614,11 @@ var require_dist_cjs8 = __commonJS({ } } for (const [k5, v] of Object.entries(attrs)) { + if (k5 === "__proto__") { + writeKey2(obj); + } obj[k5] = v; } - Object.setPrototypeOf(obj, Object.prototype); return { tag: tag2, value: obj }; } static ENTITIES = { @@ -37486,6 +37675,7 @@ var init_XmlShapeDeserializer = __esm({ init_serde(); init_ConfigurableSerdeContext(); init_UnionSerde(); + init_writeKey(); XmlShapeDeserializer = class extends SerdeContextConfig { settings; stringDeserializer; @@ -37562,6 +37752,9 @@ var init_XmlShapeDeserializer = __esm({ for (const entry of entries) { const key = entry[keyProperty]; const value2 = entry[valueProperty]; + if (key === "__proto__") { + writeKey(buffer); + } buffer[key] = this.readSchema(memberNs, value2); } return buffer;