import { NumericValue } from "@smithy/core/serde"; export 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) { return new NumericValue(numericString, "bigDecimal"); } else { return BigInt(numericString); } } } } return value; }