9565 lines
300 KiB
JavaScript
9565 lines
300 KiB
JavaScript
import {
|
||
gt,
|
||
yt
|
||
} from "./chunk-O6L55DMN.js";
|
||
import "./chunk-FNDTTSSL.js";
|
||
import "./chunk-KE6WE6IM.js";
|
||
import "./chunk-KRMUJIEJ.js";
|
||
import "./chunk-YFT6OQ5R.js";
|
||
import "./chunk-USOO7D3G.js";
|
||
import "./chunk-F73GDDKZ.js";
|
||
import {
|
||
cloneDeep_default,
|
||
merge_default
|
||
} from "./chunk-LK7GAOJV.js";
|
||
import "./chunk-GCDLWRBO.js";
|
||
import "./chunk-YI6SOFIT.js";
|
||
import {
|
||
axios_default
|
||
} from "./chunk-SCTZEQPU.js";
|
||
import "./chunk-PLDDJCW6.js";
|
||
|
||
// node_modules/@fast-crud/fast-extends/dist/uploader-s3-77927a69.mjs
|
||
var dc = Object.defineProperty;
|
||
var lc = (e, t, n) => t in e ? dc(e, t, { enumerable: true, configurable: true, writable: true, value: n }) : e[t] = n;
|
||
var _ = (e, t, n) => (lc(e, typeof t != "symbol" ? t + "" : t, n), n);
|
||
var yc = (e) => ({
|
||
setHttpHandler(t) {
|
||
e.httpHandler = t;
|
||
},
|
||
httpHandler() {
|
||
return e.httpHandler;
|
||
},
|
||
updateHttpClientConfig(t, n) {
|
||
var r;
|
||
(r = e.httpHandler) == null || r.updateHttpClientConfig(t, n);
|
||
},
|
||
httpHandlerConfigs() {
|
||
return e.httpHandler.httpHandlerConfigs();
|
||
}
|
||
});
|
||
var wc = (e) => ({
|
||
httpHandler: e.httpHandler()
|
||
});
|
||
var ss;
|
||
(function(e) {
|
||
e.HEADER = "header", e.QUERY = "query";
|
||
})(ss || (ss = {}));
|
||
var is;
|
||
(function(e) {
|
||
e.HEADER = "header", e.QUERY = "query";
|
||
})(is || (is = {}));
|
||
var Mt;
|
||
(function(e) {
|
||
e.HTTP = "http", e.HTTPS = "https";
|
||
})(Mt || (Mt = {}));
|
||
var Zt;
|
||
(function(e) {
|
||
e.MD5 = "md5", e.CRC32 = "crc32", e.CRC32C = "crc32c", e.SHA1 = "sha1", e.SHA256 = "sha256";
|
||
})(Zt || (Zt = {}));
|
||
var os;
|
||
(function(e) {
|
||
e[e.HEADER = 0] = "HEADER", e[e.TRAILER = 1] = "TRAILER";
|
||
})(os || (os = {}));
|
||
var ir = "__smithy_context";
|
||
var as;
|
||
(function(e) {
|
||
e.PROFILE = "profile", e.SSO_SESSION = "sso-session", e.SERVICES = "services";
|
||
})(as || (as = {}));
|
||
var cs;
|
||
(function(e) {
|
||
e.HTTP_0_9 = "http/0.9", e.HTTP_1_0 = "http/1.0", e.TDS_8_0 = "tds/8.0";
|
||
})(cs || (cs = {}));
|
||
var se = class _se {
|
||
constructor(t) {
|
||
this.method = t.method || "GET", this.hostname = t.hostname || "localhost", this.port = t.port, this.query = t.query || {}, this.headers = t.headers || {}, this.body = t.body, this.protocol = t.protocol ? t.protocol.slice(-1) !== ":" ? `${t.protocol}:` : t.protocol : "https:", this.path = t.path ? t.path.charAt(0) !== "/" ? `/${t.path}` : t.path : "/", this.username = t.username, this.password = t.password, this.fragment = t.fragment;
|
||
}
|
||
static clone(t) {
|
||
const n = new _se({
|
||
...t,
|
||
headers: { ...t.headers }
|
||
});
|
||
return n.query && (n.query = bc(n.query)), n;
|
||
}
|
||
static isInstance(t) {
|
||
if (!t)
|
||
return false;
|
||
const n = t;
|
||
return "method" in n && "protocol" in n && "hostname" in n && "path" in n && typeof n.query == "object" && typeof n.headers == "object";
|
||
}
|
||
clone() {
|
||
return _se.clone(this);
|
||
}
|
||
};
|
||
function bc(e) {
|
||
return Object.keys(e).reduce((t, n) => {
|
||
const r = e[n];
|
||
return {
|
||
...t,
|
||
[n]: Array.isArray(r) ? [...r] : r
|
||
};
|
||
}, {});
|
||
}
|
||
var gt2 = class {
|
||
constructor(t) {
|
||
this.statusCode = t.statusCode, this.reason = t.reason, this.headers = t.headers || {}, this.body = t.body;
|
||
}
|
||
static isInstance(t) {
|
||
if (!t)
|
||
return false;
|
||
const n = t;
|
||
return typeof n.statusCode == "number" && typeof n.headers == "object";
|
||
}
|
||
};
|
||
function Ec(e) {
|
||
return (t) => async (n) => {
|
||
var s, i;
|
||
const { request: r } = n;
|
||
return se.isInstance(r) && r.body && e.runtime === "node" && ((i = (s = e.requestHandler) == null ? void 0 : s.constructor) == null ? void 0 : i.name) !== "FetchHttpHandler" && (r.headers = {
|
||
...r.headers,
|
||
Expect: "100-continue"
|
||
}), t({
|
||
...n,
|
||
request: r
|
||
});
|
||
};
|
||
}
|
||
var xc = {
|
||
step: "build",
|
||
tags: ["SET_EXPECT_HEADER", "EXPECT_HEADER"],
|
||
name: "addExpectContinueMiddleware",
|
||
override: true
|
||
};
|
||
var Sc = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Ec(e), xc);
|
||
}
|
||
});
|
||
var mt = {
|
||
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
||
WHEN_REQUIRED: "WHEN_REQUIRED"
|
||
};
|
||
var Ac = mt.WHEN_SUPPORTED;
|
||
var bn = {
|
||
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
||
WHEN_REQUIRED: "WHEN_REQUIRED"
|
||
};
|
||
var Cc = mt.WHEN_SUPPORTED;
|
||
var V;
|
||
(function(e) {
|
||
e.MD5 = "MD5", e.CRC32 = "CRC32", e.CRC32C = "CRC32C", e.CRC64NVME = "CRC64NVME", e.SHA1 = "SHA1", e.SHA256 = "SHA256";
|
||
})(V || (V = {}));
|
||
var us;
|
||
(function(e) {
|
||
e.HEADER = "header", e.TRAILER = "trailer";
|
||
})(us || (us = {}));
|
||
var or = V.CRC32;
|
||
var ds;
|
||
(function(e) {
|
||
e.ENV = "env", e.CONFIG = "shared config entry";
|
||
})(ds || (ds = {}));
|
||
function vc(e, t, n) {
|
||
return e.$source || (e.$source = {}), e.$source[t] = n, e;
|
||
}
|
||
function ne(e, t, n) {
|
||
e.__aws_sdk_context ? e.__aws_sdk_context.features || (e.__aws_sdk_context.features = {}) : e.__aws_sdk_context = {
|
||
features: {}
|
||
}, e.__aws_sdk_context.features[t] = n;
|
||
}
|
||
var ls = (e) => {
|
||
var t, n;
|
||
return gt2.isInstance(e) ? ((t = e.headers) == null ? void 0 : t.date) ?? ((n = e.headers) == null ? void 0 : n.Date) : void 0;
|
||
};
|
||
var Sr = (e) => new Date(Date.now() + e);
|
||
var Rc = (e, t) => Math.abs(Sr(t).getTime() - e) >= 3e5;
|
||
var fs = (e, t) => {
|
||
const n = Date.parse(e);
|
||
return Rc(n, t) ? n - Date.now() : t;
|
||
};
|
||
var kt = (e, t) => {
|
||
if (!t)
|
||
throw new Error(`Property \`${e}\` is not resolved for AWS SDK SigV4Auth`);
|
||
return t;
|
||
};
|
||
var bo = async (e) => {
|
||
var u, l, f;
|
||
const t = kt("context", e.context), n = kt("config", e.config), r = (f = (l = (u = t.endpointV2) == null ? void 0 : u.properties) == null ? void 0 : l.authSchemes) == null ? void 0 : f[0], i = await kt("signer", n.signer)(r), o = e == null ? void 0 : e.signingRegion, a = e == null ? void 0 : e.signingRegionSet, c = e == null ? void 0 : e.signingName;
|
||
return {
|
||
config: n,
|
||
signer: i,
|
||
signingRegion: o,
|
||
signingRegionSet: a,
|
||
signingName: c
|
||
};
|
||
};
|
||
var Eo = class {
|
||
async sign(t, n, r) {
|
||
var f;
|
||
if (!se.isInstance(t))
|
||
throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");
|
||
const s = await bo(r), { config: i, signer: o } = s;
|
||
let { signingRegion: a, signingName: c } = s;
|
||
const u = r.context;
|
||
if (((f = u == null ? void 0 : u.authSchemes) == null ? void 0 : f.length) ?? 0 > 1) {
|
||
const [p, g] = u.authSchemes;
|
||
(p == null ? void 0 : p.name) === "sigv4a" && (g == null ? void 0 : g.name) === "sigv4" && (a = (g == null ? void 0 : g.signingRegion) ?? a, c = (g == null ? void 0 : g.signingName) ?? c);
|
||
}
|
||
return await o.sign(t, {
|
||
signingDate: Sr(i.systemClockOffset),
|
||
signingRegion: a,
|
||
signingService: c
|
||
});
|
||
}
|
||
errorHandler(t) {
|
||
return (n) => {
|
||
const r = n.ServerTime ?? ls(n.$response);
|
||
if (r) {
|
||
const s = kt("config", t.config), i = s.systemClockOffset;
|
||
s.systemClockOffset = fs(r, s.systemClockOffset), s.systemClockOffset !== i && n.$metadata && (n.$metadata.clockSkewCorrected = true);
|
||
}
|
||
throw n;
|
||
};
|
||
}
|
||
successHandler(t, n) {
|
||
const r = ls(t);
|
||
if (r) {
|
||
const s = kt("config", n.config);
|
||
s.systemClockOffset = fs(r, s.systemClockOffset);
|
||
}
|
||
}
|
||
};
|
||
var kc = class extends Eo {
|
||
async sign(t, n, r) {
|
||
var p;
|
||
if (!se.isInstance(t))
|
||
throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");
|
||
const { config: s, signer: i, signingRegion: o, signingRegionSet: a, signingName: c } = await bo(r), l = (await ((p = s.sigv4aSigningRegionSet) == null ? void 0 : p.call(s)) ?? a ?? [o]).join(",");
|
||
return await i.sign(t, {
|
||
signingDate: Sr(s.systemClockOffset),
|
||
signingRegion: l,
|
||
signingService: c
|
||
});
|
||
}
|
||
};
|
||
var St = (e) => e[ir] || (e[ir] = {});
|
||
var Ne = (e) => {
|
||
if (typeof e == "function")
|
||
return e;
|
||
const t = Promise.resolve(e);
|
||
return () => t;
|
||
};
|
||
var Tc = (e, t) => {
|
||
if (!t || t.length === 0)
|
||
return e;
|
||
const n = [];
|
||
for (const r of t)
|
||
for (const s of e)
|
||
s.schemeId.split("#")[1] === r && n.push(s);
|
||
for (const r of e)
|
||
n.find(({ schemeId: s }) => s === r.schemeId) || n.push(r);
|
||
return n;
|
||
};
|
||
function Bc(e) {
|
||
const t = /* @__PURE__ */ new Map();
|
||
for (const n of e)
|
||
t.set(n.schemeId, n);
|
||
return t;
|
||
}
|
||
var Ic = (e, t) => (n, r) => async (s) => {
|
||
var f;
|
||
const i = e.httpAuthSchemeProvider(await t.httpAuthSchemeParametersProvider(e, r, s.input)), o = e.authSchemePreference ? await e.authSchemePreference() : [], a = Tc(i, o), c = Bc(e.httpAuthSchemes), u = St(r), l = [];
|
||
for (const p of a) {
|
||
const g = c.get(p.schemeId);
|
||
if (!g) {
|
||
l.push(`HttpAuthScheme \`${p.schemeId}\` was not enabled for this service.`);
|
||
continue;
|
||
}
|
||
const S = g.identityProvider(await t.identityProviderConfigProvider(e));
|
||
if (!S) {
|
||
l.push(`HttpAuthScheme \`${p.schemeId}\` did not have an IdentityProvider configured.`);
|
||
continue;
|
||
}
|
||
const { identityProperties: T = {}, signingProperties: A = {} } = ((f = p.propertiesExtractor) == null ? void 0 : f.call(p, e, r)) || {};
|
||
p.identityProperties = Object.assign(p.identityProperties || {}, T), p.signingProperties = Object.assign(p.signingProperties || {}, A), u.selectedHttpAuthScheme = {
|
||
httpAuthOption: p,
|
||
identity: await S(p.identityProperties),
|
||
signer: g.signer
|
||
};
|
||
break;
|
||
}
|
||
if (!u.selectedHttpAuthScheme)
|
||
throw new Error(l.join(`
|
||
`));
|
||
return n(s);
|
||
};
|
||
var _c = {
|
||
step: "serialize",
|
||
tags: ["HTTP_AUTH_SCHEME"],
|
||
name: "httpAuthSchemeMiddleware",
|
||
override: true,
|
||
relation: "before",
|
||
toMiddleware: "endpointV2Middleware"
|
||
};
|
||
var Pc = (e, { httpAuthSchemeParametersProvider: t, identityProviderConfigProvider: n }) => ({
|
||
applyToStack: (r) => {
|
||
r.addRelativeTo(Ic(e, {
|
||
httpAuthSchemeParametersProvider: t,
|
||
identityProviderConfigProvider: n
|
||
}), _c);
|
||
}
|
||
});
|
||
var Nc = (e, t) => (n, r) => async (s) => {
|
||
var o, a, c, u;
|
||
const { response: i } = await n(s);
|
||
try {
|
||
const l = await t(i, e);
|
||
return {
|
||
response: i,
|
||
output: l
|
||
};
|
||
} catch (l) {
|
||
if (Object.defineProperty(l, "$response", {
|
||
value: i
|
||
}), !("$metadata" in l)) {
|
||
const f = "Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.";
|
||
try {
|
||
l.message += `
|
||
` + f;
|
||
} catch {
|
||
!r.logger || ((a = (o = r.logger) == null ? void 0 : o.constructor) == null ? void 0 : a.name) === "NoOpLogger" || (u = (c = r.logger) == null ? void 0 : c.warn) == null || u.call(c, f);
|
||
}
|
||
typeof l.$responseBodyText < "u" && l.$response && (l.$response.body = l.$responseBodyText);
|
||
try {
|
||
if (gt2.isInstance(i)) {
|
||
const { headers: p = {} } = i, g = Object.entries(p);
|
||
l.$metadata = {
|
||
httpStatusCode: i.statusCode,
|
||
requestId: En(/^x-[\w-]+-request-?id$/, g),
|
||
extendedRequestId: En(/^x-[\w-]+-id-2$/, g),
|
||
cfId: En(/^x-[\w-]+-cf-id$/, g)
|
||
};
|
||
}
|
||
} catch {
|
||
}
|
||
}
|
||
throw l;
|
||
}
|
||
};
|
||
var En = (e, t) => (t.find(([n]) => n.match(e)) || [void 0, void 0])[1];
|
||
var Mc = (e, t) => (n, r) => async (s) => {
|
||
var c;
|
||
const i = e, o = (c = r.endpointV2) != null && c.url && i.urlParser ? async () => i.urlParser(r.endpointV2.url) : i.endpoint;
|
||
if (!o)
|
||
throw new Error("No valid endpoint provider available.");
|
||
const a = await t(s.input, { ...e, endpoint: o });
|
||
return n({
|
||
...s,
|
||
request: a
|
||
});
|
||
};
|
||
var Fc = {
|
||
name: "deserializerMiddleware",
|
||
step: "deserialize",
|
||
tags: ["DESERIALIZER"],
|
||
override: true
|
||
};
|
||
var xo = {
|
||
name: "serializerMiddleware",
|
||
step: "serialize",
|
||
tags: ["SERIALIZER"],
|
||
override: true
|
||
};
|
||
function So(e, t, n) {
|
||
return {
|
||
applyToStack: (r) => {
|
||
r.add(Nc(e, n), Fc), r.add(Mc(e, t), xo);
|
||
}
|
||
};
|
||
}
|
||
var Oc = (e) => (t) => {
|
||
throw t;
|
||
};
|
||
var Dc = (e, t) => {
|
||
};
|
||
var Uc = (e) => (t, n) => async (r) => {
|
||
if (!se.isInstance(r.request))
|
||
return t(r);
|
||
const i = St(n).selectedHttpAuthScheme;
|
||
if (!i)
|
||
throw new Error("No HttpAuthScheme was selected: unable to sign request");
|
||
const { httpAuthOption: { signingProperties: o = {} }, identity: a, signer: c } = i, u = await t({
|
||
...r,
|
||
request: await c.sign(r.request, a, o)
|
||
}).catch((c.errorHandler || Oc)(o));
|
||
return (c.successHandler || Dc)(u.response, o), u;
|
||
};
|
||
var Ao = {
|
||
step: "finalizeRequest",
|
||
tags: ["HTTP_SIGNING"],
|
||
name: "httpSigningMiddleware",
|
||
aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"],
|
||
override: true,
|
||
relation: "after",
|
||
toMiddleware: "retryMiddleware"
|
||
};
|
||
var $c = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.addRelativeTo(Uc(), Ao);
|
||
}
|
||
});
|
||
var ht = (e) => {
|
||
if (typeof e == "function")
|
||
return e;
|
||
const t = Promise.resolve(e);
|
||
return () => t;
|
||
};
|
||
var Ge = {};
|
||
var At = new Array(64);
|
||
for (let e = 0, t = "A".charCodeAt(0), n = "Z".charCodeAt(0); e + t <= n; e++) {
|
||
const r = String.fromCharCode(e + t);
|
||
Ge[r] = e, At[e] = r;
|
||
}
|
||
for (let e = 0, t = "a".charCodeAt(0), n = "z".charCodeAt(0); e + t <= n; e++) {
|
||
const r = String.fromCharCode(e + t), s = e + 26;
|
||
Ge[r] = s, At[s] = r;
|
||
}
|
||
for (let e = 0; e < 10; e++) {
|
||
Ge[e.toString(10)] = e + 52;
|
||
const t = e.toString(10), n = e + 52;
|
||
Ge[t] = n, At[n] = t;
|
||
}
|
||
Ge["+"] = 62;
|
||
At[62] = "+";
|
||
Ge["/"] = 63;
|
||
At[63] = "/";
|
||
var pt = 6;
|
||
var Tt = 8;
|
||
var Lc = 63;
|
||
var Ar = (e) => {
|
||
let t = e.length / 4 * 3;
|
||
e.slice(-2) === "==" ? t -= 2 : e.slice(-1) === "=" && t--;
|
||
const n = new ArrayBuffer(t), r = new DataView(n);
|
||
for (let s = 0; s < e.length; s += 4) {
|
||
let i = 0, o = 0;
|
||
for (let u = s, l = s + 3; u <= l; u++)
|
||
if (e[u] !== "=") {
|
||
if (!(e[u] in Ge))
|
||
throw new TypeError(`Invalid character ${e[u]} in base64 string.`);
|
||
i |= Ge[e[u]] << (l - u) * pt, o += pt;
|
||
} else
|
||
i >>= pt;
|
||
const a = s / 4 * 3;
|
||
i >>= o % Tt;
|
||
const c = Math.floor(o / Tt);
|
||
for (let u = 0; u < c; u++) {
|
||
const l = (c - u - 1) * Tt;
|
||
r.setUint8(a + u, (i & 255 << l) >> l);
|
||
}
|
||
}
|
||
return new Uint8Array(n);
|
||
};
|
||
var ot = (e) => new TextEncoder().encode(e);
|
||
var yt2 = (e) => typeof e == "string" ? ot(e) : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength / Uint8Array.BYTES_PER_ELEMENT) : new Uint8Array(e);
|
||
var Cr = (e) => {
|
||
if (typeof e == "string")
|
||
return e;
|
||
if (typeof e != "object" || typeof e.byteOffset != "number" || typeof e.byteLength != "number")
|
||
throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");
|
||
return new TextDecoder("utf-8").decode(e);
|
||
};
|
||
function cn(e) {
|
||
let t;
|
||
typeof e == "string" ? t = ot(e) : t = e;
|
||
const n = typeof t == "object" && typeof t.length == "number", r = typeof t == "object" && typeof t.byteOffset == "number" && typeof t.byteLength == "number";
|
||
if (!n && !r)
|
||
throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");
|
||
let s = "";
|
||
for (let i = 0; i < t.length; i += 3) {
|
||
let o = 0, a = 0;
|
||
for (let u = i, l = Math.min(i + 3, t.length); u < l; u++)
|
||
o |= t[u] << (l - u - 1) * Tt, a += Tt;
|
||
const c = Math.ceil(a / pt);
|
||
o <<= c * pt - a;
|
||
for (let u = 1; u <= c; u++) {
|
||
const l = (c - u) * pt;
|
||
s += At[(o & Lc << l) >> l];
|
||
}
|
||
s += "==".slice(0, 4 - c);
|
||
}
|
||
return s;
|
||
}
|
||
function Hc(e, t = "utf-8") {
|
||
return t === "base64" ? cn(e) : Cr(e);
|
||
}
|
||
function zc(e, t) {
|
||
return t === "base64" ? st.mutate(Ar(e)) : st.mutate(ot(e));
|
||
}
|
||
var st = class _st extends Uint8Array {
|
||
static fromString(t, n = "utf-8") {
|
||
switch (typeof t) {
|
||
case "string":
|
||
return zc(t, n);
|
||
default:
|
||
throw new Error(`Unsupported conversion from ${typeof t} to Uint8ArrayBlobAdapter.`);
|
||
}
|
||
}
|
||
static mutate(t) {
|
||
return Object.setPrototypeOf(t, _st.prototype), t;
|
||
}
|
||
transformToString(t = "utf-8") {
|
||
return Hc(this, t);
|
||
}
|
||
};
|
||
var jc = typeof ReadableStream == "function" ? ReadableStream : function() {
|
||
};
|
||
var qc = class extends jc {
|
||
};
|
||
var ar = (e) => {
|
||
var t;
|
||
return typeof ReadableStream == "function" && (((t = e == null ? void 0 : e.constructor) == null ? void 0 : t.name) === ReadableStream.name || e instanceof ReadableStream);
|
||
};
|
||
var Vc = ({ expectedChecksum: e, checksum: t, source: n, checksumSourceLocation: r, base64Encoder: s }) => {
|
||
var c;
|
||
if (!ar(n))
|
||
throw new Error(`@smithy/util-stream: unsupported source type ${((c = n == null ? void 0 : n.constructor) == null ? void 0 : c.name) ?? n} in ChecksumStream.`);
|
||
const i = s ?? cn;
|
||
if (typeof TransformStream != "function")
|
||
throw new Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.");
|
||
const o = new TransformStream({
|
||
start() {
|
||
},
|
||
async transform(u, l) {
|
||
t.update(u), l.enqueue(u);
|
||
},
|
||
async flush(u) {
|
||
const l = await t.digest(), f = i(l);
|
||
if (e !== f) {
|
||
const p = new Error(`Checksum mismatch: expected "${e}" but received "${f}" in response header "${r}".`);
|
||
u.error(p);
|
||
} else
|
||
u.terminate();
|
||
}
|
||
});
|
||
n.pipeThrough(o);
|
||
const a = o.readable;
|
||
return Object.setPrototypeOf(a, qc.prototype), a;
|
||
};
|
||
var Wc = class {
|
||
constructor(t) {
|
||
this.allocByteArray = t, this.byteLength = 0, this.byteArrays = [];
|
||
}
|
||
push(t) {
|
||
this.byteArrays.push(t), this.byteLength += t.byteLength;
|
||
}
|
||
flush() {
|
||
if (this.byteArrays.length === 1) {
|
||
const r = this.byteArrays[0];
|
||
return this.reset(), r;
|
||
}
|
||
const t = this.allocByteArray(this.byteLength);
|
||
let n = 0;
|
||
for (let r = 0; r < this.byteArrays.length; ++r) {
|
||
const s = this.byteArrays[r];
|
||
t.set(s, n), n += s.byteLength;
|
||
}
|
||
return this.reset(), t;
|
||
}
|
||
reset() {
|
||
this.byteArrays = [], this.byteLength = 0;
|
||
}
|
||
};
|
||
function Kc(e, t, n) {
|
||
const r = e.getReader();
|
||
let s = false, i = 0;
|
||
const o = ["", new Wc((u) => new Uint8Array(u))];
|
||
let a = -1;
|
||
const c = async (u) => {
|
||
const { value: l, done: f } = await r.read(), p = l;
|
||
if (f) {
|
||
if (a !== -1) {
|
||
const g = xn(o, a);
|
||
Bt(g) > 0 && u.enqueue(g);
|
||
}
|
||
u.close();
|
||
} else {
|
||
const g = Xc(p, false);
|
||
if (a !== g && (a >= 0 && u.enqueue(xn(o, a)), a = g), a === -1) {
|
||
u.enqueue(p);
|
||
return;
|
||
}
|
||
const S = Bt(p);
|
||
i += S;
|
||
const T = Bt(o[a]);
|
||
if (S >= t && T === 0)
|
||
u.enqueue(p);
|
||
else {
|
||
const A = Zc(o, a, p);
|
||
!s && i > t * 2 && (s = true, n == null || n.warn(`@smithy/util-stream - stream chunk size ${S} is below threshold of ${t}, automatically buffering.`)), A >= t ? u.enqueue(xn(o, a)) : await c(u);
|
||
}
|
||
}
|
||
};
|
||
return new ReadableStream({
|
||
pull: c
|
||
});
|
||
}
|
||
var Gc = Kc;
|
||
function Zc(e, t, n) {
|
||
switch (t) {
|
||
case 0:
|
||
return e[0] += n, Bt(e[0]);
|
||
case 1:
|
||
case 2:
|
||
return e[t].push(n), Bt(e[t]);
|
||
}
|
||
}
|
||
function xn(e, t) {
|
||
switch (t) {
|
||
case 0:
|
||
const n = e[0];
|
||
return e[0] = "", n;
|
||
case 1:
|
||
case 2:
|
||
return e[t].flush();
|
||
}
|
||
throw new Error(`@smithy/util-stream - invalid index ${t} given to flush()`);
|
||
}
|
||
function Bt(e) {
|
||
return (e == null ? void 0 : e.byteLength) ?? (e == null ? void 0 : e.length) ?? 0;
|
||
}
|
||
function Xc(e, t = true) {
|
||
return t && typeof Buffer < "u" && e instanceof Buffer ? 2 : e instanceof Uint8Array ? 1 : typeof e == "string" ? 0 : -1;
|
||
}
|
||
var Qc = (e, t) => {
|
||
const { base64Encoder: n, bodyLengthChecker: r, checksumAlgorithmFn: s, checksumLocationName: i, streamHasher: o } = t, a = n !== void 0 && r !== void 0 && s !== void 0 && i !== void 0 && o !== void 0, c = a ? o(s, e) : void 0, u = e.getReader();
|
||
return new ReadableStream({
|
||
async pull(l) {
|
||
const { value: f, done: p } = await u.read();
|
||
if (p) {
|
||
if (l.enqueue(`0\r
|
||
`), a) {
|
||
const g = n(await c);
|
||
l.enqueue(`${i}:${g}\r
|
||
`), l.enqueue(`\r
|
||
`);
|
||
}
|
||
l.close();
|
||
} else
|
||
l.enqueue(`${(r(f) || 0).toString(16)}\r
|
||
${f}\r
|
||
`);
|
||
}
|
||
});
|
||
};
|
||
async function Yc(e, t) {
|
||
let n = 0;
|
||
const r = [], s = e.getReader();
|
||
let i = false;
|
||
for (; !i; ) {
|
||
const { done: c, value: u } = await s.read();
|
||
if (u && (r.push(u), n += (u == null ? void 0 : u.byteLength) ?? 0), n >= t)
|
||
break;
|
||
i = c;
|
||
}
|
||
s.releaseLock();
|
||
const o = new Uint8Array(Math.min(t, n));
|
||
let a = 0;
|
||
for (const c of r) {
|
||
if (c.byteLength > o.byteLength - a) {
|
||
o.set(c.subarray(0, o.byteLength - a), a);
|
||
break;
|
||
} else
|
||
o.set(c, a);
|
||
a += c.length;
|
||
}
|
||
return o;
|
||
}
|
||
var it = (e) => encodeURIComponent(e).replace(/[!'()*]/g, Jc);
|
||
var Jc = (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`;
|
||
function eu(e) {
|
||
const t = [];
|
||
for (let n of Object.keys(e).sort()) {
|
||
const r = e[n];
|
||
if (n = it(n), Array.isArray(r))
|
||
for (let s = 0, i = r.length; s < i; s++)
|
||
t.push(`${n}=${it(r[s])}`);
|
||
else {
|
||
let s = n;
|
||
(r || typeof r == "string") && (s += `=${it(r)}`), t.push(s);
|
||
}
|
||
}
|
||
return t.join("&");
|
||
}
|
||
function hs(e, t) {
|
||
return new Request(e, t);
|
||
}
|
||
function tu(e = 0) {
|
||
return new Promise((t, n) => {
|
||
e && setTimeout(() => {
|
||
const r = new Error(`Request did not complete within ${e} ms`);
|
||
r.name = "TimeoutError", n(r);
|
||
}, e);
|
||
});
|
||
}
|
||
var Sn = {
|
||
supported: void 0
|
||
};
|
||
var vr = class _vr {
|
||
static create(t) {
|
||
return typeof (t == null ? void 0 : t.handle) == "function" ? t : new _vr(t);
|
||
}
|
||
constructor(t) {
|
||
typeof t == "function" ? this.configProvider = t().then((n) => n || {}) : (this.config = t ?? {}, this.configProvider = Promise.resolve(this.config)), Sn.supported === void 0 && (Sn.supported = typeof Request < "u" && "keepalive" in hs("https://[::1]"));
|
||
}
|
||
destroy() {
|
||
}
|
||
async handle(t, { abortSignal: n, requestTimeout: r } = {}) {
|
||
var L;
|
||
this.config || (this.config = await this.configProvider);
|
||
const s = r ?? this.config.requestTimeout, i = this.config.keepAlive === true, o = this.config.credentials;
|
||
if (n != null && n.aborted) {
|
||
const H = new Error("Request aborted");
|
||
return H.name = "AbortError", Promise.reject(H);
|
||
}
|
||
let a = t.path;
|
||
const c = eu(t.query || {});
|
||
c && (a += `?${c}`), t.fragment && (a += `#${t.fragment}`);
|
||
let u = "";
|
||
if (t.username != null || t.password != null) {
|
||
const H = t.username ?? "", K = t.password ?? "";
|
||
u = `${H}:${K}@`;
|
||
}
|
||
const { port: l, method: f } = t, p = `${t.protocol}//${u}${t.hostname}${l ? `:${l}` : ""}${a}`, g = f === "GET" || f === "HEAD" ? void 0 : t.body, S = {
|
||
body: g,
|
||
headers: new Headers(t.headers),
|
||
method: f,
|
||
credentials: o
|
||
};
|
||
(L = this.config) != null && L.cache && (S.cache = this.config.cache), g && (S.duplex = "half"), typeof AbortController < "u" && (S.signal = n), Sn.supported && (S.keepalive = i), typeof this.config.requestInit == "function" && Object.assign(S, this.config.requestInit(t));
|
||
let T = () => {
|
||
};
|
||
const A = hs(p, S), I = [
|
||
fetch(A).then((H) => {
|
||
const K = H.headers, he = {};
|
||
for (const Fe of K.entries())
|
||
he[Fe[0]] = Fe[1];
|
||
return H.body != null ? {
|
||
response: new gt2({
|
||
headers: he,
|
||
reason: H.statusText,
|
||
statusCode: H.status,
|
||
body: H.body
|
||
})
|
||
} : H.blob().then((Fe) => ({
|
||
response: new gt2({
|
||
headers: he,
|
||
reason: H.statusText,
|
||
statusCode: H.status,
|
||
body: Fe
|
||
})
|
||
}));
|
||
}),
|
||
tu(s)
|
||
];
|
||
return n && I.push(new Promise((H, K) => {
|
||
const he = () => {
|
||
const pe = new Error("Request aborted");
|
||
pe.name = "AbortError", K(pe);
|
||
};
|
||
if (typeof n.addEventListener == "function") {
|
||
const pe = n;
|
||
pe.addEventListener("abort", he, { once: true }), T = () => pe.removeEventListener("abort", he);
|
||
} else
|
||
n.onabort = he;
|
||
})), Promise.race(I).finally(T);
|
||
}
|
||
updateHttpClientConfig(t, n) {
|
||
this.config = void 0, this.configProvider = this.configProvider.then((r) => (r[t] = n, r));
|
||
}
|
||
httpHandlerConfigs() {
|
||
return this.config ?? {};
|
||
}
|
||
};
|
||
var Co = async (e) => {
|
||
var t;
|
||
return typeof Blob == "function" && e instanceof Blob || ((t = e.constructor) == null ? void 0 : t.name) === "Blob" ? Blob.prototype.arrayBuffer !== void 0 ? new Uint8Array(await e.arrayBuffer()) : nu(e) : ru(e);
|
||
};
|
||
async function nu(e) {
|
||
const t = await su(e), n = Ar(t);
|
||
return new Uint8Array(n);
|
||
}
|
||
async function ru(e) {
|
||
const t = [], n = e.getReader();
|
||
let r = false, s = 0;
|
||
for (; !r; ) {
|
||
const { done: a, value: c } = await n.read();
|
||
c && (t.push(c), s += c.length), r = a;
|
||
}
|
||
const i = new Uint8Array(s);
|
||
let o = 0;
|
||
for (const a of t)
|
||
i.set(a, o), o += a.length;
|
||
return i;
|
||
}
|
||
function su(e) {
|
||
return new Promise((t, n) => {
|
||
const r = new FileReader();
|
||
r.onloadend = () => {
|
||
if (r.readyState !== 2)
|
||
return n(new Error("Reader aborted too early"));
|
||
const s = r.result ?? "", i = s.indexOf(","), o = i > -1 ? i + 1 : s.length;
|
||
t(s.substring(o));
|
||
}, r.onabort = () => n(new Error("Read aborted")), r.onerror = () => n(r.error), r.readAsDataURL(e);
|
||
});
|
||
}
|
||
var vo = {};
|
||
var cr = {};
|
||
for (let e = 0; e < 256; e++) {
|
||
let t = e.toString(16).toLowerCase();
|
||
t.length === 1 && (t = `0${t}`), vo[e] = t, cr[t] = e;
|
||
}
|
||
function Ro(e) {
|
||
if (e.length % 2 !== 0)
|
||
throw new Error("Hex encoded strings must have an even number length");
|
||
const t = new Uint8Array(e.length / 2);
|
||
for (let n = 0; n < e.length; n += 2) {
|
||
const r = e.slice(n, n + 2).toLowerCase();
|
||
if (r in cr)
|
||
t[n / 2] = cr[r];
|
||
else
|
||
throw new Error(`Cannot decode unrecognized sequence ${r} as hexadecimal`);
|
||
}
|
||
return t;
|
||
}
|
||
function Re(e) {
|
||
let t = "";
|
||
for (let n = 0; n < e.byteLength; n++)
|
||
t += vo[e[n]];
|
||
return t;
|
||
}
|
||
var ps = "The stream has already been transformed.";
|
||
var iu = (e) => {
|
||
var s, i;
|
||
if (!gs(e) && !ar(e)) {
|
||
const o = ((i = (s = e == null ? void 0 : e.__proto__) == null ? void 0 : s.constructor) == null ? void 0 : i.name) || e;
|
||
throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${o}`);
|
||
}
|
||
let t = false;
|
||
const n = async () => {
|
||
if (t)
|
||
throw new Error(ps);
|
||
return t = true, await Co(e);
|
||
}, r = (o) => {
|
||
if (typeof o.stream != "function")
|
||
throw new Error(`Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.
|
||
If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body`);
|
||
return o.stream();
|
||
};
|
||
return Object.assign(e, {
|
||
transformToByteArray: n,
|
||
transformToString: async (o) => {
|
||
const a = await n();
|
||
if (o === "base64")
|
||
return cn(a);
|
||
if (o === "hex")
|
||
return Re(a);
|
||
if (o === void 0 || o === "utf8" || o === "utf-8")
|
||
return Cr(a);
|
||
if (typeof TextDecoder == "function")
|
||
return new TextDecoder(o).decode(a);
|
||
throw new Error("TextDecoder is not available, please make sure polyfill is provided.");
|
||
},
|
||
transformToWebStream: () => {
|
||
if (t)
|
||
throw new Error(ps);
|
||
if (t = true, gs(e))
|
||
return r(e);
|
||
if (ar(e))
|
||
return e;
|
||
throw new Error(`Cannot transform payload to web stream, got ${e}`);
|
||
}
|
||
});
|
||
};
|
||
var gs = (e) => typeof Blob == "function" && e instanceof Blob;
|
||
async function ou(e) {
|
||
return typeof e.stream == "function" && (e = e.stream()), e.tee();
|
||
}
|
||
var ko = async (e = new Uint8Array(), t) => {
|
||
if (e instanceof Uint8Array)
|
||
return st.mutate(e);
|
||
if (!e)
|
||
return st.mutate(new Uint8Array());
|
||
const n = t.streamCollector(e);
|
||
return st.mutate(await n);
|
||
};
|
||
function ms(e) {
|
||
return encodeURIComponent(e).replace(/[!'()*]/g, function(t) {
|
||
return "%" + t.charCodeAt(0).toString(16).toUpperCase();
|
||
});
|
||
}
|
||
var To = (e) => {
|
||
switch (e) {
|
||
case "true":
|
||
return true;
|
||
case "false":
|
||
return false;
|
||
default:
|
||
throw new Error(`Unable to parse boolean value "${e}"`);
|
||
}
|
||
};
|
||
var au = (e) => {
|
||
if (e != null) {
|
||
if (typeof e == "string") {
|
||
const t = parseFloat(e);
|
||
if (!Number.isNaN(t))
|
||
return String(t) !== String(e) && Po.warn(_o(`Expected number but observed string: ${e}`)), t;
|
||
}
|
||
if (typeof e == "number")
|
||
return e;
|
||
throw new TypeError(`Expected number, got ${typeof e}: ${e}`);
|
||
}
|
||
};
|
||
var cu = Math.ceil(2 ** 127 * (2 - 2 ** -23));
|
||
var ys = (e) => {
|
||
const t = au(e);
|
||
if (t !== void 0 && !Number.isNaN(t) && t !== 1 / 0 && t !== -1 / 0 && Math.abs(t) > cu)
|
||
throw new TypeError(`Expected 32-bit float, got ${e}`);
|
||
return t;
|
||
};
|
||
var ur = (e) => {
|
||
if (e != null) {
|
||
if (Number.isInteger(e) && !Number.isNaN(e))
|
||
return e;
|
||
throw new TypeError(`Expected integer, got ${typeof e}: ${e}`);
|
||
}
|
||
};
|
||
var ws = (e) => Bo(e, 16);
|
||
var bs = (e) => Bo(e, 8);
|
||
var Bo = (e, t) => {
|
||
const n = ur(e);
|
||
if (n !== void 0 && uu(n, t) !== n)
|
||
throw new TypeError(`Expected ${t}-bit integer, got ${e}`);
|
||
return n;
|
||
};
|
||
var uu = (e, t) => {
|
||
switch (t) {
|
||
case 32:
|
||
return Int32Array.of(e)[0];
|
||
case 16:
|
||
return Int16Array.of(e)[0];
|
||
case 8:
|
||
return Int8Array.of(e)[0];
|
||
}
|
||
};
|
||
var Io = (e, t) => {
|
||
if (e == null)
|
||
throw t ? new TypeError(`Expected a non-null value for ${t}`) : new TypeError("Expected a non-null value");
|
||
return e;
|
||
};
|
||
var du = (e) => {
|
||
if (e == null)
|
||
return;
|
||
if (typeof e == "object" && !Array.isArray(e))
|
||
return e;
|
||
const t = Array.isArray(e) ? "array" : typeof e;
|
||
throw new TypeError(`Expected object, got ${t}: ${e}`);
|
||
};
|
||
var It = (e) => {
|
||
if (e != null) {
|
||
if (typeof e == "string")
|
||
return e;
|
||
if (["boolean", "number", "bigint"].includes(typeof e))
|
||
return Po.warn(_o(`Expected string, got ${typeof e}: ${e}`)), String(e);
|
||
throw new TypeError(`Expected string, got ${typeof e}: ${e}`);
|
||
}
|
||
};
|
||
var lu = (e) => ys(typeof e == "string" ? un(e) : e);
|
||
var fu = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g;
|
||
var un = (e) => {
|
||
const t = e.match(fu);
|
||
if (t === null || t[0].length !== e.length)
|
||
throw new TypeError("Expected real number, got implicit NaN");
|
||
return parseFloat(e);
|
||
};
|
||
var hu = (e) => ur(typeof e == "string" ? un(e) : e);
|
||
var pu = (e) => ws(typeof e == "string" ? un(e) : e);
|
||
var gu = (e) => bs(typeof e == "string" ? un(e) : e);
|
||
var _o = (e) => String(new TypeError(e).stack || e).split(`
|
||
`).slice(0, 5).filter((t) => !t.includes("stackTraceWarning")).join(`
|
||
`);
|
||
var Po = {
|
||
warn: console.warn
|
||
};
|
||
var mu = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
||
var No = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
||
function yu(e) {
|
||
const t = e.getUTCFullYear(), n = e.getUTCMonth(), r = e.getUTCDay(), s = e.getUTCDate(), i = e.getUTCHours(), o = e.getUTCMinutes(), a = e.getUTCSeconds(), c = s < 10 ? `0${s}` : `${s}`, u = i < 10 ? `0${i}` : `${i}`, l = o < 10 ? `0${o}` : `${o}`, f = a < 10 ? `0${a}` : `${a}`;
|
||
return `${mu[r]}, ${c} ${No[n]} ${t} ${u}:${l}:${f} GMT`;
|
||
}
|
||
var wu = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/);
|
||
var bu = (e) => {
|
||
if (e == null)
|
||
return;
|
||
if (typeof e != "string")
|
||
throw new TypeError("RFC-3339 date-times must be expressed as strings");
|
||
const t = wu.exec(e);
|
||
if (!t)
|
||
throw new TypeError("Invalid RFC-3339 date-time value");
|
||
const [n, r, s, i, o, a, c, u, l] = t, f = pu(Mo(r)), p = _t(s, "month", 1, 12), g = _t(i, "day", 1, 31), S = Eu(f, p, g, { hours: o, minutes: a, seconds: c, fractionalMilliseconds: u });
|
||
return l.toUpperCase() != "Z" && S.setTime(S.getTime() - vu(l)), S;
|
||
};
|
||
var Eu = (e, t, n, r) => {
|
||
const s = t - 1;
|
||
return Su(e, s, n), new Date(Date.UTC(e, s, n, _t(r.hours, "hour", 0, 23), _t(r.minutes, "minute", 0, 59), _t(r.seconds, "seconds", 0, 60), Cu(r.fractionalMilliseconds)));
|
||
};
|
||
var xu = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
||
var Su = (e, t, n) => {
|
||
let r = xu[t];
|
||
if (t === 1 && Au(e) && (r = 29), n > r)
|
||
throw new TypeError(`Invalid day for ${No[t]} in ${e}: ${n}`);
|
||
};
|
||
var Au = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0);
|
||
var _t = (e, t, n, r) => {
|
||
const s = gu(Mo(e));
|
||
if (s < n || s > r)
|
||
throw new TypeError(`${t} must be between ${n} and ${r}, inclusive`);
|
||
return s;
|
||
};
|
||
var Cu = (e) => e == null ? 0 : lu("0." + e) * 1e3;
|
||
var vu = (e) => {
|
||
const t = e[0];
|
||
let n = 1;
|
||
if (t == "+")
|
||
n = 1;
|
||
else if (t == "-")
|
||
n = -1;
|
||
else
|
||
throw new TypeError(`Offset direction, ${t}, must be "+" or "-"`);
|
||
const r = Number(e.substring(1, 3)), s = Number(e.substring(4, 6));
|
||
return n * (r * 60 + s) * 60 * 1e3;
|
||
};
|
||
var Mo = (e) => {
|
||
let t = 0;
|
||
for (; t < e.length - 1 && e.charAt(t) === "0"; )
|
||
t++;
|
||
return t === 0 ? e : e.slice(t);
|
||
};
|
||
var Ru = (e, t, n, r, s, i) => {
|
||
if (t != null && t[n] !== void 0) {
|
||
const o = r();
|
||
if (o.length <= 0)
|
||
throw new Error("Empty value provided for input HTTP label: " + n + ".");
|
||
e = e.replace(s, i ? o.split("/").map((a) => ms(a)).join("/") : ms(o));
|
||
} else
|
||
throw new Error("No value provided for input HTTP label: " + n + ".");
|
||
return e;
|
||
};
|
||
function Fo(e, t) {
|
||
return new ku(e, t);
|
||
}
|
||
var ku = class {
|
||
constructor(t, n) {
|
||
this.input = t, this.context = n, this.query = {}, this.method = "", this.headers = {}, this.path = "", this.body = null, this.hostname = "", this.resolvePathStack = [];
|
||
}
|
||
async build() {
|
||
const { hostname: t, protocol: n = "https", port: r, path: s } = await this.context.endpoint();
|
||
this.path = s;
|
||
for (const i of this.resolvePathStack)
|
||
i(this.path);
|
||
return new se({
|
||
protocol: n,
|
||
hostname: this.hostname || t,
|
||
port: r,
|
||
method: this.method,
|
||
path: this.path,
|
||
query: this.query,
|
||
body: this.body,
|
||
headers: this.headers
|
||
});
|
||
}
|
||
hn(t) {
|
||
return this.hostname = t, this;
|
||
}
|
||
bp(t) {
|
||
return this.resolvePathStack.push((n) => {
|
||
this.path = `${n != null && n.endsWith("/") ? n.slice(0, -1) : n || ""}` + t;
|
||
}), this;
|
||
}
|
||
p(t, n, r, s) {
|
||
return this.resolvePathStack.push((i) => {
|
||
this.path = Ru(i, this.input, t, n, r, s);
|
||
}), this;
|
||
}
|
||
h(t) {
|
||
return this.headers = t, this;
|
||
}
|
||
q(t) {
|
||
return this.query = t, this;
|
||
}
|
||
b(t) {
|
||
return this.body = t, this;
|
||
}
|
||
m(t) {
|
||
return this.method = t, this;
|
||
}
|
||
};
|
||
function Tu(e, t, n) {
|
||
e.__smithy_context ? e.__smithy_context.features || (e.__smithy_context.features = {}) : e.__smithy_context = {
|
||
features: {}
|
||
}, e.__smithy_context.features[t] = n;
|
||
}
|
||
var Bu = class {
|
||
constructor(t) {
|
||
this.authSchemes = /* @__PURE__ */ new Map();
|
||
for (const [n, r] of Object.entries(t))
|
||
r !== void 0 && this.authSchemes.set(n, r);
|
||
}
|
||
getIdentityProvider(t) {
|
||
return this.authSchemes.get(t);
|
||
}
|
||
};
|
||
var Iu = (e) => (t) => Oo(t) && t.expiration.getTime() - Date.now() < e;
|
||
var _u = 3e5;
|
||
var Pu = Iu(_u);
|
||
var Oo = (e) => e.expiration !== void 0;
|
||
var Nu = (e, t, n) => {
|
||
if (e === void 0)
|
||
return;
|
||
const r = typeof e != "function" ? async () => Promise.resolve(e) : e;
|
||
let s, i, o, a = false;
|
||
const c = async (u) => {
|
||
i || (i = r(u));
|
||
try {
|
||
s = await i, o = true, a = false;
|
||
} finally {
|
||
i = void 0;
|
||
}
|
||
return s;
|
||
};
|
||
return t === void 0 ? async (u) => ((!o || u != null && u.forceRefresh) && (s = await c(u)), s) : async (u) => ((!o || u != null && u.forceRefresh) && (s = await c(u)), a ? s : n(s) ? (t(s) && await c(u), s) : (a = true, s));
|
||
};
|
||
var Mu = (e, t, n) => {
|
||
let r, s, i, o = false;
|
||
const a = async () => {
|
||
s || (s = e());
|
||
try {
|
||
r = await s, i = true, o = false;
|
||
} finally {
|
||
s = void 0;
|
||
}
|
||
return r;
|
||
};
|
||
return t === void 0 ? async (c) => ((!i || c != null && c.forceRefresh) && (r = await a()), r) : async (c) => ((!i || c != null && c.forceRefresh) && (r = await a()), o ? r : n && !n(r) ? (o = true, r) : (t(r) && await a(), r));
|
||
};
|
||
var Fu = (e) => (e.sigv4aSigningRegionSet = ht(e.sigv4aSigningRegionSet), e);
|
||
var Ou = "X-Amz-Algorithm";
|
||
var Du = "X-Amz-Credential";
|
||
var Do = "X-Amz-Date";
|
||
var Uu = "X-Amz-SignedHeaders";
|
||
var $u = "X-Amz-Expires";
|
||
var Uo = "X-Amz-Signature";
|
||
var $o = "X-Amz-Security-Token";
|
||
var Lo = "authorization";
|
||
var Ho = Do.toLowerCase();
|
||
var Lu = "date";
|
||
var Hu = [Lo, Ho, Lu];
|
||
var zu = Uo.toLowerCase();
|
||
var dr = "x-amz-content-sha256";
|
||
var ju = $o.toLowerCase();
|
||
var qu = {
|
||
authorization: true,
|
||
"cache-control": true,
|
||
connection: true,
|
||
expect: true,
|
||
from: true,
|
||
"keep-alive": true,
|
||
"max-forwards": true,
|
||
pragma: true,
|
||
referer: true,
|
||
te: true,
|
||
trailer: true,
|
||
"transfer-encoding": true,
|
||
upgrade: true,
|
||
"user-agent": true,
|
||
"x-amzn-trace-id": true
|
||
};
|
||
var Vu = /^proxy-/;
|
||
var Wu = /^sec-/;
|
||
var An = "AWS4-HMAC-SHA256";
|
||
var Ku = "AWS4-HMAC-SHA256-PAYLOAD";
|
||
var Gu = "UNSIGNED-PAYLOAD";
|
||
var Zu = 50;
|
||
var zo = "aws4_request";
|
||
var Xu = 60 * 60 * 24 * 7;
|
||
var Ut = {};
|
||
var Cn = [];
|
||
var vn = (e, t, n) => `${e}/${t}/${n}/${zo}`;
|
||
var Qu = async (e, t, n, r, s) => {
|
||
const i = await Es(e, t.secretAccessKey, t.accessKeyId), o = `${n}:${r}:${s}:${Re(i)}:${t.sessionToken}`;
|
||
if (o in Ut)
|
||
return Ut[o];
|
||
for (Cn.push(o); Cn.length > Zu; )
|
||
delete Ut[Cn.shift()];
|
||
let a = `AWS4${t.secretAccessKey}`;
|
||
for (const c of [n, r, s, zo])
|
||
a = await Es(e, a, c);
|
||
return Ut[o] = a;
|
||
};
|
||
var Es = (e, t, n) => {
|
||
const r = new e(t);
|
||
return r.update(yt2(n)), r.digest();
|
||
};
|
||
var xs = ({ headers: e }, t, n) => {
|
||
const r = {};
|
||
for (const s of Object.keys(e).sort()) {
|
||
if (e[s] == null)
|
||
continue;
|
||
const i = s.toLowerCase();
|
||
(i in qu || t != null && t.has(i) || Vu.test(i) || Wu.test(i)) && (!n || n && !n.has(i)) || (r[i] = e[s].trim().replace(/\s+/g, " "));
|
||
}
|
||
return r;
|
||
};
|
||
var jo = (e) => typeof ArrayBuffer == "function" && e instanceof ArrayBuffer || Object.prototype.toString.call(e) === "[object ArrayBuffer]";
|
||
var Rn = async ({ headers: e, body: t }, n) => {
|
||
for (const r of Object.keys(e))
|
||
if (r.toLowerCase() === dr)
|
||
return e[r];
|
||
if (t == null)
|
||
return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
|
||
if (typeof t == "string" || ArrayBuffer.isView(t) || jo(t)) {
|
||
const r = new n();
|
||
return r.update(yt2(t)), Re(await r.digest());
|
||
}
|
||
return Gu;
|
||
};
|
||
var Yu = class {
|
||
format(t) {
|
||
const n = [];
|
||
for (const i of Object.keys(t)) {
|
||
const o = ot(i);
|
||
n.push(Uint8Array.from([o.byteLength]), o, this.formatHeaderValue(t[i]));
|
||
}
|
||
const r = new Uint8Array(n.reduce((i, o) => i + o.byteLength, 0));
|
||
let s = 0;
|
||
for (const i of n)
|
||
r.set(i, s), s += i.byteLength;
|
||
return r;
|
||
}
|
||
formatHeaderValue(t) {
|
||
switch (t.type) {
|
||
case "boolean":
|
||
return Uint8Array.from([t.value ? 0 : 1]);
|
||
case "byte":
|
||
return Uint8Array.from([2, t.value]);
|
||
case "short":
|
||
const n = new DataView(new ArrayBuffer(3));
|
||
return n.setUint8(0, 3), n.setInt16(1, t.value, false), new Uint8Array(n.buffer);
|
||
case "integer":
|
||
const r = new DataView(new ArrayBuffer(5));
|
||
return r.setUint8(0, 4), r.setInt32(1, t.value, false), new Uint8Array(r.buffer);
|
||
case "long":
|
||
const s = new Uint8Array(9);
|
||
return s[0] = 5, s.set(t.value.bytes, 1), s;
|
||
case "binary":
|
||
const i = new DataView(new ArrayBuffer(3 + t.value.byteLength));
|
||
i.setUint8(0, 6), i.setUint16(1, t.value.byteLength, false);
|
||
const o = new Uint8Array(i.buffer);
|
||
return o.set(t.value, 3), o;
|
||
case "string":
|
||
const a = ot(t.value), c = new DataView(new ArrayBuffer(3 + a.byteLength));
|
||
c.setUint8(0, 7), c.setUint16(1, a.byteLength, false);
|
||
const u = new Uint8Array(c.buffer);
|
||
return u.set(a, 3), u;
|
||
case "timestamp":
|
||
const l = new Uint8Array(9);
|
||
return l[0] = 8, l.set(ed.fromNumber(t.value.valueOf()).bytes, 1), l;
|
||
case "uuid":
|
||
if (!Ju.test(t.value))
|
||
throw new Error(`Invalid UUID received: ${t.value}`);
|
||
const f = new Uint8Array(17);
|
||
return f[0] = 9, f.set(Ro(t.value.replace(/\-/g, "")), 1), f;
|
||
}
|
||
}
|
||
};
|
||
var Ss;
|
||
(function(e) {
|
||
e[e.boolTrue = 0] = "boolTrue", e[e.boolFalse = 1] = "boolFalse", e[e.byte = 2] = "byte", e[e.short = 3] = "short", e[e.integer = 4] = "integer", e[e.long = 5] = "long", e[e.byteArray = 6] = "byteArray", e[e.string = 7] = "string", e[e.timestamp = 8] = "timestamp", e[e.uuid = 9] = "uuid";
|
||
})(Ss || (Ss = {}));
|
||
var Ju = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;
|
||
var ed = class qo {
|
||
constructor(t) {
|
||
if (this.bytes = t, t.byteLength !== 8)
|
||
throw new Error("Int64 buffers must be exactly 8 bytes");
|
||
}
|
||
static fromNumber(t) {
|
||
if (t > 9223372036854776e3 || t < -9223372036854776e3)
|
||
throw new Error(`${t} is too large (or, if negative, too small) to represent as an Int64`);
|
||
const n = new Uint8Array(8);
|
||
for (let r = 7, s = Math.abs(Math.round(t)); r > -1 && s > 0; r--, s /= 256)
|
||
n[r] = s;
|
||
return t < 0 && As(n), new qo(n);
|
||
}
|
||
valueOf() {
|
||
const t = this.bytes.slice(0), n = t[0] & 128;
|
||
return n && As(t), parseInt(Re(t), 16) * (n ? -1 : 1);
|
||
}
|
||
toString() {
|
||
return String(this.valueOf());
|
||
}
|
||
};
|
||
function As(e) {
|
||
for (let t = 0; t < 8; t++)
|
||
e[t] ^= 255;
|
||
for (let t = 7; t > -1 && (e[t]++, e[t] === 0); t--)
|
||
;
|
||
}
|
||
var td = (e, t) => {
|
||
e = e.toLowerCase();
|
||
for (const n of Object.keys(t))
|
||
if (e === n.toLowerCase())
|
||
return true;
|
||
return false;
|
||
};
|
||
var nd = (e, t = {}) => {
|
||
var s, i;
|
||
const { headers: n, query: r = {} } = se.clone(e);
|
||
for (const o of Object.keys(n)) {
|
||
const a = o.toLowerCase();
|
||
(a.slice(0, 6) === "x-amz-" && !((s = t.unhoistableHeaders) != null && s.has(a)) || (i = t.hoistableHeaders) != null && i.has(a)) && (r[o] = n[o], delete n[o]);
|
||
}
|
||
return {
|
||
...e,
|
||
headers: n,
|
||
query: r
|
||
};
|
||
};
|
||
var Cs = (e) => {
|
||
e = se.clone(e);
|
||
for (const t of Object.keys(e.headers))
|
||
Hu.indexOf(t.toLowerCase()) > -1 && delete e.headers[t];
|
||
return e;
|
||
};
|
||
var rd = ({ query: e = {} }) => {
|
||
const t = [], n = {};
|
||
for (const r of Object.keys(e)) {
|
||
if (r.toLowerCase() === zu)
|
||
continue;
|
||
const s = it(r);
|
||
t.push(s);
|
||
const i = e[r];
|
||
typeof i == "string" ? n[s] = `${s}=${it(i)}` : Array.isArray(i) && (n[s] = i.slice(0).reduce((o, a) => o.concat([`${s}=${it(a)}`]), []).sort().join("&"));
|
||
}
|
||
return t.sort().map((r) => n[r]).filter((r) => r).join("&");
|
||
};
|
||
var sd = (e) => id(e).toISOString().replace(/\.\d{3}Z$/, "Z");
|
||
var id = (e) => typeof e == "number" ? new Date(e * 1e3) : typeof e == "string" ? Number(e) ? new Date(Number(e) * 1e3) : new Date(e) : e;
|
||
var od = class {
|
||
constructor({ applyChecksum: t, credentials: n, region: r, service: s, sha256: i, uriEscapePath: o = true }) {
|
||
this.service = s, this.sha256 = i, this.uriEscapePath = o, this.applyChecksum = typeof t == "boolean" ? t : true, this.regionProvider = Ne(r), this.credentialProvider = Ne(n);
|
||
}
|
||
createCanonicalRequest(t, n, r) {
|
||
const s = Object.keys(n).sort();
|
||
return `${t.method}
|
||
${this.getCanonicalPath(t)}
|
||
${rd(t)}
|
||
${s.map((i) => `${i}:${n[i]}`).join(`
|
||
`)}
|
||
|
||
${s.join(";")}
|
||
${r}`;
|
||
}
|
||
async createStringToSign(t, n, r, s) {
|
||
const i = new this.sha256();
|
||
i.update(yt2(r));
|
||
const o = await i.digest();
|
||
return `${s}
|
||
${t}
|
||
${n}
|
||
${Re(o)}`;
|
||
}
|
||
getCanonicalPath({ path: t }) {
|
||
if (this.uriEscapePath) {
|
||
const n = [];
|
||
for (const i of t.split("/"))
|
||
(i == null ? void 0 : i.length) !== 0 && i !== "." && (i === ".." ? n.pop() : n.push(i));
|
||
const r = `${t != null && t.startsWith("/") ? "/" : ""}${n.join("/")}${n.length > 0 && (t != null && t.endsWith("/")) ? "/" : ""}`;
|
||
return it(r).replace(/%2F/g, "/");
|
||
}
|
||
return t;
|
||
}
|
||
validateResolvedCredentials(t) {
|
||
if (typeof t != "object" || typeof t.accessKeyId != "string" || typeof t.secretAccessKey != "string")
|
||
throw new Error("Resolved credential object is not valid");
|
||
}
|
||
formatDate(t) {
|
||
const n = sd(t).replace(/[\-:]/g, "");
|
||
return {
|
||
longDate: n,
|
||
shortDate: n.slice(0, 8)
|
||
};
|
||
}
|
||
getCanonicalHeaderList(t) {
|
||
return Object.keys(t).sort().join(";");
|
||
}
|
||
};
|
||
var lr = class extends od {
|
||
constructor({ applyChecksum: t, credentials: n, region: r, service: s, sha256: i, uriEscapePath: o = true }) {
|
||
super({
|
||
applyChecksum: t,
|
||
credentials: n,
|
||
region: r,
|
||
service: s,
|
||
sha256: i,
|
||
uriEscapePath: o
|
||
}), this.headerFormatter = new Yu();
|
||
}
|
||
async presign(t, n = {}) {
|
||
const { signingDate: r = /* @__PURE__ */ new Date(), expiresIn: s = 3600, unsignableHeaders: i, unhoistableHeaders: o, signableHeaders: a, hoistableHeaders: c, signingRegion: u, signingService: l } = n, f = await this.credentialProvider();
|
||
this.validateResolvedCredentials(f);
|
||
const p = u ?? await this.regionProvider(), { longDate: g, shortDate: S } = this.formatDate(r);
|
||
if (s > Xu)
|
||
return Promise.reject("Signature version 4 presigned URLs must have an expiration date less than one week in the future");
|
||
const T = vn(S, p, l ?? this.service), A = nd(Cs(t), { unhoistableHeaders: o, hoistableHeaders: c });
|
||
f.sessionToken && (A.query[$o] = f.sessionToken), A.query[Ou] = An, A.query[Du] = `${f.accessKeyId}/${T}`, A.query[Do] = g, A.query[$u] = s.toString(10);
|
||
const I = xs(A, i, a);
|
||
return A.query[Uu] = this.getCanonicalHeaderList(I), A.query[Uo] = await this.getSignature(g, T, this.getSigningKey(f, p, S, l), this.createCanonicalRequest(A, I, await Rn(t, this.sha256))), A;
|
||
}
|
||
async sign(t, n) {
|
||
return typeof t == "string" ? this.signString(t, n) : t.headers && t.payload ? this.signEvent(t, n) : t.message ? this.signMessage(t, n) : this.signRequest(t, n);
|
||
}
|
||
async signEvent({ headers: t, payload: n }, { signingDate: r = /* @__PURE__ */ new Date(), priorSignature: s, signingRegion: i, signingService: o }) {
|
||
const a = i ?? await this.regionProvider(), { shortDate: c, longDate: u } = this.formatDate(r), l = vn(c, a, o ?? this.service), f = await Rn({ headers: {}, body: n }, this.sha256), p = new this.sha256();
|
||
p.update(t);
|
||
const g = Re(await p.digest()), S = [
|
||
Ku,
|
||
u,
|
||
l,
|
||
s,
|
||
g,
|
||
f
|
||
].join(`
|
||
`);
|
||
return this.signString(S, { signingDate: r, signingRegion: a, signingService: o });
|
||
}
|
||
async signMessage(t, { signingDate: n = /* @__PURE__ */ new Date(), signingRegion: r, signingService: s }) {
|
||
return this.signEvent({
|
||
headers: this.headerFormatter.format(t.message.headers),
|
||
payload: t.message.body
|
||
}, {
|
||
signingDate: n,
|
||
signingRegion: r,
|
||
signingService: s,
|
||
priorSignature: t.priorSignature
|
||
}).then((o) => ({ message: t.message, signature: o }));
|
||
}
|
||
async signString(t, { signingDate: n = /* @__PURE__ */ new Date(), signingRegion: r, signingService: s } = {}) {
|
||
const i = await this.credentialProvider();
|
||
this.validateResolvedCredentials(i);
|
||
const o = r ?? await this.regionProvider(), { shortDate: a } = this.formatDate(n), c = new this.sha256(await this.getSigningKey(i, o, a, s));
|
||
return c.update(yt2(t)), Re(await c.digest());
|
||
}
|
||
async signRequest(t, { signingDate: n = /* @__PURE__ */ new Date(), signableHeaders: r, unsignableHeaders: s, signingRegion: i, signingService: o } = {}) {
|
||
const a = await this.credentialProvider();
|
||
this.validateResolvedCredentials(a);
|
||
const c = i ?? await this.regionProvider(), u = Cs(t), { longDate: l, shortDate: f } = this.formatDate(n), p = vn(f, c, o ?? this.service);
|
||
u.headers[Ho] = l, a.sessionToken && (u.headers[ju] = a.sessionToken);
|
||
const g = await Rn(u, this.sha256);
|
||
!td(dr, u.headers) && this.applyChecksum && (u.headers[dr] = g);
|
||
const S = xs(u, s, r), T = await this.getSignature(l, p, this.getSigningKey(a, c, f, o), this.createCanonicalRequest(u, S, g));
|
||
return u.headers[Lo] = `${An} Credential=${a.accessKeyId}/${p}, SignedHeaders=${this.getCanonicalHeaderList(S)}, Signature=${T}`, u;
|
||
}
|
||
async getSignature(t, n, r, s) {
|
||
const i = await this.createStringToSign(t, n, s, An), o = new this.sha256(await r);
|
||
return o.update(yt2(i)), Re(await o.digest());
|
||
}
|
||
getSigningKey(t, n, r, s) {
|
||
return Qu(this.sha256, t, r, n, s || this.service);
|
||
}
|
||
};
|
||
var ad = (e) => {
|
||
let t = e.credentials, n = !!e.credentials, r;
|
||
Object.defineProperty(e, "credentials", {
|
||
set(u) {
|
||
u && u !== t && u !== r && (n = true), t = u;
|
||
const l = cd(e, {
|
||
credentials: t,
|
||
credentialDefaultProvider: e.credentialDefaultProvider
|
||
}), f = ud(e, l);
|
||
n && !f.attributed ? (r = async (p) => f(p).then((g) => vc(g, "CREDENTIALS_CODE", "e")), r.memoized = f.memoized, r.configBound = f.configBound, r.attributed = true) : r = f;
|
||
},
|
||
get() {
|
||
return r;
|
||
},
|
||
enumerable: true,
|
||
configurable: true
|
||
}), e.credentials = t;
|
||
const { signingEscapePath: s = true, systemClockOffset: i = e.systemClockOffset || 0, sha256: o } = e;
|
||
let a;
|
||
return e.signer ? a = ht(e.signer) : e.regionInfoProvider ? a = () => ht(e.region)().then(async (u) => [
|
||
await e.regionInfoProvider(u, {
|
||
useFipsEndpoint: await e.useFipsEndpoint(),
|
||
useDualstackEndpoint: await e.useDualstackEndpoint()
|
||
}) || {},
|
||
u
|
||
]).then(([u, l]) => {
|
||
const { signingRegion: f, signingService: p } = u;
|
||
e.signingRegion = e.signingRegion || f || l, e.signingName = e.signingName || p || e.serviceId;
|
||
const g = {
|
||
...e,
|
||
credentials: e.credentials,
|
||
region: e.signingRegion,
|
||
service: e.signingName,
|
||
sha256: o,
|
||
uriEscapePath: s
|
||
}, S = e.signerConstructor || lr;
|
||
return new S(g);
|
||
}) : a = async (u) => {
|
||
u = Object.assign({}, {
|
||
name: "sigv4",
|
||
signingName: e.signingName || e.defaultSigningName,
|
||
signingRegion: await ht(e.region)(),
|
||
properties: {}
|
||
}, u);
|
||
const l = u.signingRegion, f = u.signingName;
|
||
e.signingRegion = e.signingRegion || l, e.signingName = e.signingName || f || e.serviceId;
|
||
const p = {
|
||
...e,
|
||
credentials: e.credentials,
|
||
region: e.signingRegion,
|
||
service: e.signingName,
|
||
sha256: o,
|
||
uriEscapePath: s
|
||
}, g = e.signerConstructor || lr;
|
||
return new g(p);
|
||
}, Object.assign(e, {
|
||
systemClockOffset: i,
|
||
signingEscapePath: s,
|
||
signer: a
|
||
});
|
||
};
|
||
function cd(e, { credentials: t, credentialDefaultProvider: n }) {
|
||
let r;
|
||
return t ? t != null && t.memoized ? r = t : r = Nu(t, Pu, Oo) : n ? r = ht(n(Object.assign({}, e, {
|
||
parentClientConfig: e
|
||
}))) : r = async () => {
|
||
throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.");
|
||
}, r.memoized = true, r;
|
||
}
|
||
function ud(e, t) {
|
||
if (t.configBound)
|
||
return t;
|
||
const n = async (r) => t({ ...r, callerClientConfig: e });
|
||
return n.memoized = t.memoized, n.configBound = true, n;
|
||
}
|
||
var vs = typeof TextEncoder == "function" ? new TextEncoder() : null;
|
||
var dd = (e) => {
|
||
if (typeof e == "string") {
|
||
if (vs)
|
||
return vs.encode(e).byteLength;
|
||
let t = e.length;
|
||
for (let n = t - 1; n >= 0; n--) {
|
||
const r = e.charCodeAt(n);
|
||
r > 127 && r <= 2047 ? t++ : r > 2047 && r <= 65535 && (t += 2), r >= 56320 && r <= 57343 && n--;
|
||
}
|
||
return t;
|
||
} else {
|
||
if (typeof e.byteLength == "number")
|
||
return e.byteLength;
|
||
if (typeof e.size == "number")
|
||
return e.size;
|
||
}
|
||
throw new Error(`Body Length computation failed for ${e}`);
|
||
};
|
||
var Qe = (e, t) => {
|
||
const n = [];
|
||
if (e && n.push(e), t)
|
||
for (const r of t)
|
||
n.push(r);
|
||
return n;
|
||
};
|
||
var Le = (e, t) => `${e || "anonymous"}${t && t.length > 0 ? ` (a.k.a. ${t.join(",")})` : ""}`;
|
||
var Xt = () => {
|
||
let e = [], t = [], n = false;
|
||
const r = /* @__PURE__ */ new Set(), s = (f) => f.sort((p, g) => Rs[g.step] - Rs[p.step] || ks[g.priority || "normal"] - ks[p.priority || "normal"]), i = (f) => {
|
||
let p = false;
|
||
const g = (S) => {
|
||
const T = Qe(S.name, S.aliases);
|
||
if (T.includes(f)) {
|
||
p = true;
|
||
for (const A of T)
|
||
r.delete(A);
|
||
return false;
|
||
}
|
||
return true;
|
||
};
|
||
return e = e.filter(g), t = t.filter(g), p;
|
||
}, o = (f) => {
|
||
let p = false;
|
||
const g = (S) => {
|
||
if (S.middleware === f) {
|
||
p = true;
|
||
for (const T of Qe(S.name, S.aliases))
|
||
r.delete(T);
|
||
return false;
|
||
}
|
||
return true;
|
||
};
|
||
return e = e.filter(g), t = t.filter(g), p;
|
||
}, a = (f) => {
|
||
var p;
|
||
return e.forEach((g) => {
|
||
f.add(g.middleware, { ...g });
|
||
}), t.forEach((g) => {
|
||
f.addRelativeTo(g.middleware, { ...g });
|
||
}), (p = f.identifyOnResolve) == null || p.call(f, l.identifyOnResolve()), f;
|
||
}, c = (f) => {
|
||
const p = [];
|
||
return f.before.forEach((g) => {
|
||
g.before.length === 0 && g.after.length === 0 ? p.push(g) : p.push(...c(g));
|
||
}), p.push(f), f.after.reverse().forEach((g) => {
|
||
g.before.length === 0 && g.after.length === 0 ? p.push(g) : p.push(...c(g));
|
||
}), p;
|
||
}, u = (f = false) => {
|
||
const p = [], g = [], S = {};
|
||
return e.forEach((A) => {
|
||
const I = {
|
||
...A,
|
||
before: [],
|
||
after: []
|
||
};
|
||
for (const L of Qe(I.name, I.aliases))
|
||
S[L] = I;
|
||
p.push(I);
|
||
}), t.forEach((A) => {
|
||
const I = {
|
||
...A,
|
||
before: [],
|
||
after: []
|
||
};
|
||
for (const L of Qe(I.name, I.aliases))
|
||
S[L] = I;
|
||
g.push(I);
|
||
}), g.forEach((A) => {
|
||
if (A.toMiddleware) {
|
||
const I = S[A.toMiddleware];
|
||
if (I === void 0) {
|
||
if (f)
|
||
return;
|
||
throw new Error(`${A.toMiddleware} is not found when adding ${Le(A.name, A.aliases)} middleware ${A.relation} ${A.toMiddleware}`);
|
||
}
|
||
A.relation === "after" && I.after.push(A), A.relation === "before" && I.before.push(A);
|
||
}
|
||
}), s(p).map(c).reduce((A, I) => (A.push(...I), A), []);
|
||
}, l = {
|
||
add: (f, p = {}) => {
|
||
const { name: g, override: S, aliases: T } = p, A = {
|
||
step: "initialize",
|
||
priority: "normal",
|
||
middleware: f,
|
||
...p
|
||
}, I = Qe(g, T);
|
||
if (I.length > 0) {
|
||
if (I.some((L) => r.has(L))) {
|
||
if (!S)
|
||
throw new Error(`Duplicate middleware name '${Le(g, T)}'`);
|
||
for (const L of I) {
|
||
const H = e.findIndex((he) => {
|
||
var pe;
|
||
return he.name === L || ((pe = he.aliases) == null ? void 0 : pe.some((Fe) => Fe === L));
|
||
});
|
||
if (H === -1)
|
||
continue;
|
||
const K = e[H];
|
||
if (K.step !== A.step || A.priority !== K.priority)
|
||
throw new Error(`"${Le(K.name, K.aliases)}" middleware with ${K.priority} priority in ${K.step} step cannot be overridden by "${Le(g, T)}" middleware with ${A.priority} priority in ${A.step} step.`);
|
||
e.splice(H, 1);
|
||
}
|
||
}
|
||
for (const L of I)
|
||
r.add(L);
|
||
}
|
||
e.push(A);
|
||
},
|
||
addRelativeTo: (f, p) => {
|
||
const { name: g, override: S, aliases: T } = p, A = {
|
||
middleware: f,
|
||
...p
|
||
}, I = Qe(g, T);
|
||
if (I.length > 0) {
|
||
if (I.some((L) => r.has(L))) {
|
||
if (!S)
|
||
throw new Error(`Duplicate middleware name '${Le(g, T)}'`);
|
||
for (const L of I) {
|
||
const H = t.findIndex((he) => {
|
||
var pe;
|
||
return he.name === L || ((pe = he.aliases) == null ? void 0 : pe.some((Fe) => Fe === L));
|
||
});
|
||
if (H === -1)
|
||
continue;
|
||
const K = t[H];
|
||
if (K.toMiddleware !== A.toMiddleware || K.relation !== A.relation)
|
||
throw new Error(`"${Le(K.name, K.aliases)}" middleware ${K.relation} "${K.toMiddleware}" middleware cannot be overridden by "${Le(g, T)}" middleware ${A.relation} "${A.toMiddleware}" middleware.`);
|
||
t.splice(H, 1);
|
||
}
|
||
}
|
||
for (const L of I)
|
||
r.add(L);
|
||
}
|
||
t.push(A);
|
||
},
|
||
clone: () => a(Xt()),
|
||
use: (f) => {
|
||
f.applyToStack(l);
|
||
},
|
||
remove: (f) => typeof f == "string" ? i(f) : o(f),
|
||
removeByTag: (f) => {
|
||
let p = false;
|
||
const g = (S) => {
|
||
const { tags: T, name: A, aliases: I } = S;
|
||
if (T && T.includes(f)) {
|
||
const L = Qe(A, I);
|
||
for (const H of L)
|
||
r.delete(H);
|
||
return p = true, false;
|
||
}
|
||
return true;
|
||
};
|
||
return e = e.filter(g), t = t.filter(g), p;
|
||
},
|
||
concat: (f) => {
|
||
var g;
|
||
const p = a(Xt());
|
||
return p.use(f), p.identifyOnResolve(n || p.identifyOnResolve() || (((g = f.identifyOnResolve) == null ? void 0 : g.call(f)) ?? false)), p;
|
||
},
|
||
applyToStack: a,
|
||
identify: () => u(true).map((f) => {
|
||
const p = f.step ?? f.relation + " " + f.toMiddleware;
|
||
return Le(f.name, f.aliases) + " - " + p;
|
||
}),
|
||
identifyOnResolve(f) {
|
||
return typeof f == "boolean" && (n = f), n;
|
||
},
|
||
resolve: (f, p) => {
|
||
for (const g of u().map((S) => S.middleware).reverse())
|
||
f = g(f, p);
|
||
return f;
|
||
}
|
||
};
|
||
return l;
|
||
};
|
||
var Rs = {
|
||
initialize: 5,
|
||
serialize: 4,
|
||
build: 3,
|
||
finalizeRequest: 2,
|
||
deserialize: 1
|
||
};
|
||
var ks = {
|
||
high: 3,
|
||
normal: 2,
|
||
low: 1
|
||
};
|
||
var ld = class {
|
||
constructor(t) {
|
||
this.config = t, this.middlewareStack = Xt();
|
||
}
|
||
send(t, n, r) {
|
||
const s = typeof n != "function" ? n : void 0, i = typeof n == "function" ? n : r, o = s === void 0 && this.config.cacheMiddleware === true;
|
||
let a;
|
||
if (o) {
|
||
this.handlers || (this.handlers = /* @__PURE__ */ new WeakMap());
|
||
const c = this.handlers;
|
||
c.has(t.constructor) ? a = c.get(t.constructor) : (a = t.resolveMiddleware(this.middlewareStack, this.config, s), c.set(t.constructor, a));
|
||
} else
|
||
delete this.handlers, a = t.resolveMiddleware(this.middlewareStack, this.config, s);
|
||
if (i)
|
||
a(t).then((c) => i(null, c.output), (c) => i(c)).catch(() => {
|
||
});
|
||
else
|
||
return a(t).then((c) => c.output);
|
||
}
|
||
destroy() {
|
||
var t, n, r;
|
||
(r = (n = (t = this.config) == null ? void 0 : t.requestHandler) == null ? void 0 : n.destroy) == null || r.call(n), delete this.handlers;
|
||
}
|
||
};
|
||
var Rr = class {
|
||
constructor() {
|
||
this.middlewareStack = Xt();
|
||
}
|
||
static classBuilder() {
|
||
return new fd();
|
||
}
|
||
resolveMiddlewareWithContext(t, n, r, { middlewareFn: s, clientName: i, commandName: o, inputFilterSensitiveLog: a, outputFilterSensitiveLog: c, smithyContext: u, additionalContext: l, CommandCtor: f }) {
|
||
for (const A of s.bind(this)(f, t, n, r))
|
||
this.middlewareStack.use(A);
|
||
const p = t.concat(this.middlewareStack), { logger: g } = n, S = {
|
||
logger: g,
|
||
clientName: i,
|
||
commandName: o,
|
||
inputFilterSensitiveLog: a,
|
||
outputFilterSensitiveLog: c,
|
||
[ir]: {
|
||
commandInstance: this,
|
||
...u
|
||
},
|
||
...l
|
||
}, { requestHandler: T } = n;
|
||
return p.resolve((A) => T.handle(A.request, r || {}), S);
|
||
}
|
||
};
|
||
var fd = class {
|
||
constructor() {
|
||
this._init = () => {
|
||
}, this._ep = {}, this._middlewareFn = () => [], this._commandName = "", this._clientName = "", this._additionalContext = {}, this._smithyContext = {}, this._inputFilterSensitiveLog = (t) => t, this._outputFilterSensitiveLog = (t) => t, this._serializer = null, this._deserializer = null;
|
||
}
|
||
init(t) {
|
||
this._init = t;
|
||
}
|
||
ep(t) {
|
||
return this._ep = t, this;
|
||
}
|
||
m(t) {
|
||
return this._middlewareFn = t, this;
|
||
}
|
||
s(t, n, r = {}) {
|
||
return this._smithyContext = {
|
||
service: t,
|
||
operation: n,
|
||
...r
|
||
}, this;
|
||
}
|
||
c(t = {}) {
|
||
return this._additionalContext = t, this;
|
||
}
|
||
n(t, n) {
|
||
return this._clientName = t, this._commandName = n, this;
|
||
}
|
||
f(t = (r) => r, n = (r) => r) {
|
||
return this._inputFilterSensitiveLog = t, this._outputFilterSensitiveLog = n, this;
|
||
}
|
||
ser(t) {
|
||
return this._serializer = t, this;
|
||
}
|
||
de(t) {
|
||
return this._deserializer = t, this;
|
||
}
|
||
sc(t) {
|
||
return this._operationSchema = t, this._smithyContext.operationSchema = t, this;
|
||
}
|
||
build() {
|
||
const t = this;
|
||
let n;
|
||
return n = class extends Rr {
|
||
static getEndpointParameterInstructions() {
|
||
return t._ep;
|
||
}
|
||
constructor(...[r]) {
|
||
super(), this.serialize = t._serializer, this.deserialize = t._deserializer, this.input = r ?? {}, t._init(this), this.schema = t._operationSchema;
|
||
}
|
||
resolveMiddleware(r, s, i) {
|
||
return this.resolveMiddlewareWithContext(r, s, i, {
|
||
CommandCtor: n,
|
||
middlewareFn: t._middlewareFn,
|
||
clientName: t._clientName,
|
||
commandName: t._commandName,
|
||
inputFilterSensitiveLog: t._inputFilterSensitiveLog,
|
||
outputFilterSensitiveLog: t._outputFilterSensitiveLog,
|
||
smithyContext: t._smithyContext,
|
||
additionalContext: t._additionalContext
|
||
});
|
||
}
|
||
};
|
||
}
|
||
};
|
||
var Me = "***SensitiveInformation***";
|
||
var ft = class _ft extends Error {
|
||
constructor(t) {
|
||
super(t.message), Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype), this.name = t.name, this.$fault = t.$fault, this.$metadata = t.$metadata;
|
||
}
|
||
static isInstance(t) {
|
||
if (!t)
|
||
return false;
|
||
const n = t;
|
||
return _ft.prototype.isPrototypeOf(n) || !!n.$fault && !!n.$metadata && (n.$fault === "client" || n.$fault === "server");
|
||
}
|
||
static [Symbol.hasInstance](t) {
|
||
if (!t)
|
||
return false;
|
||
const n = t;
|
||
return this === _ft ? _ft.isInstance(t) : _ft.isInstance(t) ? n.name && this.name ? this.prototype.isPrototypeOf(t) || n.name === this.name : this.prototype.isPrototypeOf(t) : false;
|
||
}
|
||
};
|
||
var ve = (e, t = {}) => {
|
||
Object.entries(t).filter(([, r]) => r !== void 0).forEach(([r, s]) => {
|
||
(e[r] == null || e[r] === "") && (e[r] = s);
|
||
});
|
||
const n = e.message || e.Message || "UnknownError";
|
||
return e.message = n, delete e.Message, e;
|
||
};
|
||
var hd = ({ output: e, parsedBody: t, exceptionCtor: n, errorCode: r }) => {
|
||
const s = gd(e), i = s.httpStatusCode ? s.httpStatusCode + "" : void 0, o = new n({
|
||
name: (t == null ? void 0 : t.code) || (t == null ? void 0 : t.Code) || r || i || "UnknownError",
|
||
$fault: "client",
|
||
$metadata: s
|
||
});
|
||
throw ve(o, t);
|
||
};
|
||
var pd = (e) => ({ output: t, parsedBody: n, errorCode: r }) => {
|
||
hd({ output: t, parsedBody: n, exceptionCtor: e, errorCode: r });
|
||
};
|
||
var gd = (e) => ({
|
||
httpStatusCode: e.statusCode,
|
||
requestId: e.headers["x-amzn-requestid"] ?? e.headers["x-amzn-request-id"] ?? e.headers["x-amz-request-id"],
|
||
extendedRequestId: e.headers["x-amz-id-2"],
|
||
cfId: e.headers["x-amz-cf-id"]
|
||
});
|
||
var md = (e) => {
|
||
switch (e) {
|
||
case "standard":
|
||
return {
|
||
retryMode: "standard",
|
||
connectionTimeout: 3100
|
||
};
|
||
case "in-region":
|
||
return {
|
||
retryMode: "standard",
|
||
connectionTimeout: 1100
|
||
};
|
||
case "cross-region":
|
||
return {
|
||
retryMode: "standard",
|
||
connectionTimeout: 3100
|
||
};
|
||
case "mobile":
|
||
return {
|
||
retryMode: "standard",
|
||
connectionTimeout: 3e4
|
||
};
|
||
default:
|
||
return {};
|
||
}
|
||
};
|
||
var yd = (e) => {
|
||
const t = [];
|
||
for (const n in Zt) {
|
||
const r = Zt[n];
|
||
e[r] !== void 0 && t.push({
|
||
algorithmId: () => r,
|
||
checksumConstructor: () => e[r]
|
||
});
|
||
}
|
||
return {
|
||
addChecksumAlgorithm(n) {
|
||
t.push(n);
|
||
},
|
||
checksumAlgorithms() {
|
||
return t;
|
||
}
|
||
};
|
||
};
|
||
var wd = (e) => {
|
||
const t = {};
|
||
return e.checksumAlgorithms().forEach((n) => {
|
||
t[n.algorithmId()] = n.checksumConstructor();
|
||
}), t;
|
||
};
|
||
var bd = (e) => ({
|
||
setRetryStrategy(t) {
|
||
e.retryStrategy = t;
|
||
},
|
||
retryStrategy() {
|
||
return e.retryStrategy;
|
||
}
|
||
});
|
||
var Ed = (e) => {
|
||
const t = {};
|
||
return t.retryStrategy = e.retryStrategy(), t;
|
||
};
|
||
var xd = (e) => Object.assign(yd(e), bd(e));
|
||
var Sd = (e) => Object.assign(wd(e), Ed(e));
|
||
var Vo = (e) => {
|
||
const t = "#text";
|
||
for (const n in e)
|
||
e.hasOwnProperty(n) && e[n][t] !== void 0 ? e[n] = e[n][t] : typeof e[n] == "object" && e[n] !== null && (e[n] = Vo(e[n]));
|
||
return e;
|
||
};
|
||
var Ve = (e) => e != null;
|
||
var kr = class {
|
||
trace() {
|
||
}
|
||
debug() {
|
||
}
|
||
info() {
|
||
}
|
||
warn() {
|
||
}
|
||
error() {
|
||
}
|
||
};
|
||
function ee(e, t, n) {
|
||
let r, s, i;
|
||
if (typeof t > "u" && typeof n > "u")
|
||
r = {}, i = e;
|
||
else {
|
||
if (r = e, typeof t == "function")
|
||
return s = t, i = n, Ad(r, s, i);
|
||
i = t;
|
||
}
|
||
for (const o of Object.keys(i)) {
|
||
if (!Array.isArray(i[o])) {
|
||
r[o] = i[o];
|
||
continue;
|
||
}
|
||
Cd(r, null, i, o);
|
||
}
|
||
return r;
|
||
}
|
||
var Ad = (e, t, n) => ee(e, Object.entries(n).reduce((r, [s, i]) => (Array.isArray(i) ? r[s] = i : typeof i == "function" ? r[s] = [t, i()] : r[s] = [t, i], r), {}));
|
||
var Cd = (e, t, n, r) => {
|
||
if (t !== null) {
|
||
let o = n[r];
|
||
typeof o == "function" && (o = [, o]);
|
||
const [a = vd, c = Rd, u = r] = o;
|
||
(typeof a == "function" && a(t[u]) || typeof a != "function" && a) && (e[r] = c(t[u]));
|
||
return;
|
||
}
|
||
let [s, i] = n[r];
|
||
if (typeof i == "function") {
|
||
let o;
|
||
const a = s === void 0 && (o = i()) != null, c = typeof s == "function" && !!s(void 0) || typeof s != "function" && !!s;
|
||
a ? e[r] = o : c && (e[r] = i());
|
||
} else {
|
||
const o = s === void 0 && i != null, a = typeof s == "function" && !!s(i) || typeof s != "function" && !!s;
|
||
(o || a) && (e[r] = i);
|
||
}
|
||
};
|
||
var vd = (e) => e != null;
|
||
var Rd = (e) => e;
|
||
var kd = (e) => e.toISOString().replace(".000Z", "Z");
|
||
var Td = (e, t) => ko(e, t).then((n) => t.utf8Encoder(n));
|
||
var Wo = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
|
||
var Bd = Wo + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
|
||
var Id = "[" + Wo + "][" + Bd + "]*";
|
||
var _d = new RegExp("^" + Id + "$");
|
||
function Ko(e, t) {
|
||
const n = [];
|
||
let r = t.exec(e);
|
||
for (; r; ) {
|
||
const s = [];
|
||
s.startIndex = t.lastIndex - r[0].length;
|
||
const i = r.length;
|
||
for (let o = 0; o < i; o++)
|
||
s.push(r[o]);
|
||
n.push(s), r = t.exec(e);
|
||
}
|
||
return n;
|
||
}
|
||
var Tr = function(e) {
|
||
const t = _d.exec(e);
|
||
return !(t === null || typeof t > "u");
|
||
};
|
||
function Pd(e) {
|
||
return typeof e < "u";
|
||
}
|
||
var Nd = {
|
||
allowBooleanAttributes: false,
|
||
//A tag can have attributes without any value
|
||
unpairedTags: []
|
||
};
|
||
function Md(e, t) {
|
||
t = Object.assign({}, Nd, t);
|
||
const n = [];
|
||
let r = false, s = false;
|
||
e[0] === "\uFEFF" && (e = e.substr(1));
|
||
for (let i = 0; i < e.length; i++)
|
||
if (e[i] === "<" && e[i + 1] === "?") {
|
||
if (i += 2, i = Bs(e, i), i.err)
|
||
return i;
|
||
} else if (e[i] === "<") {
|
||
let o = i;
|
||
if (i++, e[i] === "!") {
|
||
i = Is(e, i);
|
||
continue;
|
||
} else {
|
||
let a = false;
|
||
e[i] === "/" && (a = true, i++);
|
||
let c = "";
|
||
for (; i < e.length && e[i] !== ">" && e[i] !== " " && e[i] !== " " && e[i] !== `
|
||
` && e[i] !== "\r"; i++)
|
||
c += e[i];
|
||
if (c = c.trim(), c[c.length - 1] === "/" && (c = c.substring(0, c.length - 1), i--), !zd(c)) {
|
||
let f;
|
||
return c.trim().length === 0 ? f = "Invalid space after '<'." : f = "Tag '" + c + "' is an invalid name.", Q("InvalidTag", f, xe(e, i));
|
||
}
|
||
const u = Dd(e, i);
|
||
if (u === false)
|
||
return Q("InvalidAttr", "Attributes for '" + c + "' have open quote.", xe(e, i));
|
||
let l = u.value;
|
||
if (i = u.index, l[l.length - 1] === "/") {
|
||
const f = i - l.length;
|
||
l = l.substring(0, l.length - 1);
|
||
const p = _s(l, t);
|
||
if (p === true)
|
||
r = true;
|
||
else
|
||
return Q(p.err.code, p.err.msg, xe(e, f + p.err.line));
|
||
} else if (a)
|
||
if (u.tagClosed) {
|
||
if (l.trim().length > 0)
|
||
return Q("InvalidTag", "Closing tag '" + c + "' can't have attributes or invalid starting.", xe(e, o));
|
||
if (n.length === 0)
|
||
return Q("InvalidTag", "Closing tag '" + c + "' has not been opened.", xe(e, o));
|
||
{
|
||
const f = n.pop();
|
||
if (c !== f.tagName) {
|
||
let p = xe(e, f.tagStartPos);
|
||
return Q(
|
||
"InvalidTag",
|
||
"Expected closing tag '" + f.tagName + "' (opened in line " + p.line + ", col " + p.col + ") instead of closing tag '" + c + "'.",
|
||
xe(e, o)
|
||
);
|
||
}
|
||
n.length == 0 && (s = true);
|
||
}
|
||
} else
|
||
return Q("InvalidTag", "Closing tag '" + c + "' doesn't have proper closing.", xe(e, i));
|
||
else {
|
||
const f = _s(l, t);
|
||
if (f !== true)
|
||
return Q(f.err.code, f.err.msg, xe(e, i - l.length + f.err.line));
|
||
if (s === true)
|
||
return Q("InvalidXml", "Multiple possible root nodes found.", xe(e, i));
|
||
t.unpairedTags.indexOf(c) !== -1 || n.push({ tagName: c, tagStartPos: o }), r = true;
|
||
}
|
||
for (i++; i < e.length; i++)
|
||
if (e[i] === "<")
|
||
if (e[i + 1] === "!") {
|
||
i++, i = Is(e, i);
|
||
continue;
|
||
} else if (e[i + 1] === "?") {
|
||
if (i = Bs(e, ++i), i.err)
|
||
return i;
|
||
} else
|
||
break;
|
||
else if (e[i] === "&") {
|
||
const f = Ld(e, i);
|
||
if (f == -1)
|
||
return Q("InvalidChar", "char '&' is not expected.", xe(e, i));
|
||
i = f;
|
||
} else if (s === true && !Ts(e[i]))
|
||
return Q("InvalidXml", "Extra text at the end", xe(e, i));
|
||
e[i] === "<" && i--;
|
||
}
|
||
} else {
|
||
if (Ts(e[i]))
|
||
continue;
|
||
return Q("InvalidChar", "char '" + e[i] + "' is not expected.", xe(e, i));
|
||
}
|
||
if (r) {
|
||
if (n.length == 1)
|
||
return Q("InvalidTag", "Unclosed tag '" + n[0].tagName + "'.", xe(e, n[0].tagStartPos));
|
||
if (n.length > 0)
|
||
return Q("InvalidXml", "Invalid '" + JSON.stringify(n.map((i) => i.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 });
|
||
} else
|
||
return Q("InvalidXml", "Start tag expected.", 1);
|
||
return true;
|
||
}
|
||
function Ts(e) {
|
||
return e === " " || e === " " || e === `
|
||
` || e === "\r";
|
||
}
|
||
function Bs(e, t) {
|
||
const n = t;
|
||
for (; t < e.length; t++)
|
||
if (e[t] == "?" || e[t] == " ") {
|
||
const r = e.substr(n, t - n);
|
||
if (t > 5 && r === "xml")
|
||
return Q("InvalidXml", "XML declaration allowed only at the start of the document.", xe(e, t));
|
||
if (e[t] == "?" && e[t + 1] == ">") {
|
||
t++;
|
||
break;
|
||
} else
|
||
continue;
|
||
}
|
||
return t;
|
||
}
|
||
function Is(e, t) {
|
||
if (e.length > t + 5 && e[t + 1] === "-" && e[t + 2] === "-") {
|
||
for (t += 3; t < e.length; t++)
|
||
if (e[t] === "-" && e[t + 1] === "-" && e[t + 2] === ">") {
|
||
t += 2;
|
||
break;
|
||
}
|
||
} else if (e.length > t + 8 && e[t + 1] === "D" && e[t + 2] === "O" && e[t + 3] === "C" && e[t + 4] === "T" && e[t + 5] === "Y" && e[t + 6] === "P" && e[t + 7] === "E") {
|
||
let n = 1;
|
||
for (t += 8; t < e.length; t++)
|
||
if (e[t] === "<")
|
||
n++;
|
||
else if (e[t] === ">" && (n--, n === 0))
|
||
break;
|
||
} else if (e.length > t + 9 && e[t + 1] === "[" && e[t + 2] === "C" && e[t + 3] === "D" && e[t + 4] === "A" && e[t + 5] === "T" && e[t + 6] === "A" && e[t + 7] === "[") {
|
||
for (t += 8; t < e.length; t++)
|
||
if (e[t] === "]" && e[t + 1] === "]" && e[t + 2] === ">") {
|
||
t += 2;
|
||
break;
|
||
}
|
||
}
|
||
return t;
|
||
}
|
||
var Fd = '"';
|
||
var Od = "'";
|
||
function Dd(e, t) {
|
||
let n = "", r = "", s = false;
|
||
for (; t < e.length; t++) {
|
||
if (e[t] === Fd || e[t] === Od)
|
||
r === "" ? r = e[t] : r !== e[t] || (r = "");
|
||
else if (e[t] === ">" && r === "") {
|
||
s = true;
|
||
break;
|
||
}
|
||
n += e[t];
|
||
}
|
||
return r !== "" ? false : {
|
||
value: n,
|
||
index: t,
|
||
tagClosed: s
|
||
};
|
||
}
|
||
var Ud = new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`, "g");
|
||
function _s(e, t) {
|
||
const n = Ko(e, Ud), r = {};
|
||
for (let s = 0; s < n.length; s++) {
|
||
if (n[s][1].length === 0)
|
||
return Q("InvalidAttr", "Attribute '" + n[s][2] + "' has no space in starting.", Ct(n[s]));
|
||
if (n[s][3] !== void 0 && n[s][4] === void 0)
|
||
return Q("InvalidAttr", "Attribute '" + n[s][2] + "' is without value.", Ct(n[s]));
|
||
if (n[s][3] === void 0 && !t.allowBooleanAttributes)
|
||
return Q("InvalidAttr", "boolean attribute '" + n[s][2] + "' is not allowed.", Ct(n[s]));
|
||
const i = n[s][2];
|
||
if (!Hd(i))
|
||
return Q("InvalidAttr", "Attribute '" + i + "' is an invalid name.", Ct(n[s]));
|
||
if (!r.hasOwnProperty(i))
|
||
r[i] = 1;
|
||
else
|
||
return Q("InvalidAttr", "Attribute '" + i + "' is repeated.", Ct(n[s]));
|
||
}
|
||
return true;
|
||
}
|
||
function $d(e, t) {
|
||
let n = /\d/;
|
||
for (e[t] === "x" && (t++, n = /[\da-fA-F]/); t < e.length; t++) {
|
||
if (e[t] === ";")
|
||
return t;
|
||
if (!e[t].match(n))
|
||
break;
|
||
}
|
||
return -1;
|
||
}
|
||
function Ld(e, t) {
|
||
if (t++, e[t] === ";")
|
||
return -1;
|
||
if (e[t] === "#")
|
||
return t++, $d(e, t);
|
||
let n = 0;
|
||
for (; t < e.length; t++, n++)
|
||
if (!(e[t].match(/\w/) && n < 20)) {
|
||
if (e[t] === ";")
|
||
break;
|
||
return -1;
|
||
}
|
||
return t;
|
||
}
|
||
function Q(e, t, n) {
|
||
return {
|
||
err: {
|
||
code: e,
|
||
msg: t,
|
||
line: n.line || n,
|
||
col: n.col
|
||
}
|
||
};
|
||
}
|
||
function Hd(e) {
|
||
return Tr(e);
|
||
}
|
||
function zd(e) {
|
||
return Tr(e);
|
||
}
|
||
function xe(e, t) {
|
||
const n = e.substring(0, t).split(/\r?\n/);
|
||
return {
|
||
line: n.length,
|
||
// column number is last line's length + 1, because column numbering starts at 1:
|
||
col: n[n.length - 1].length + 1
|
||
};
|
||
}
|
||
function Ct(e) {
|
||
return e.startIndex + e[1].length;
|
||
}
|
||
var jd = {
|
||
preserveOrder: false,
|
||
attributeNamePrefix: "@_",
|
||
attributesGroupName: false,
|
||
textNodeName: "#text",
|
||
ignoreAttributes: true,
|
||
removeNSPrefix: false,
|
||
// remove NS from tag name or attribute name if true
|
||
allowBooleanAttributes: false,
|
||
//a tag can have attributes without any value
|
||
//ignoreRootElement : false,
|
||
parseTagValue: true,
|
||
parseAttributeValue: false,
|
||
trimValues: true,
|
||
//Trim string values of tag and attributes
|
||
cdataPropName: false,
|
||
numberParseOptions: {
|
||
hex: true,
|
||
leadingZeros: true,
|
||
eNotation: true
|
||
},
|
||
tagValueProcessor: function(e, t) {
|
||
return t;
|
||
},
|
||
attributeValueProcessor: function(e, t) {
|
||
return t;
|
||
},
|
||
stopNodes: [],
|
||
//nested tags will not be parsed even for errors
|
||
alwaysCreateTextNode: false,
|
||
isArray: () => false,
|
||
commentPropName: false,
|
||
unpairedTags: [],
|
||
processEntities: true,
|
||
htmlEntities: false,
|
||
ignoreDeclaration: false,
|
||
ignorePiTags: false,
|
||
transformTagName: false,
|
||
transformAttributeName: false,
|
||
updateTag: function(e, t, n) {
|
||
return e;
|
||
},
|
||
// skipEmptyListItem: false
|
||
captureMetaData: false
|
||
};
|
||
var qd = function(e) {
|
||
return Object.assign({}, jd, e);
|
||
};
|
||
var Qt;
|
||
typeof Symbol != "function" ? Qt = "@@xmlMetadata" : Qt = Symbol("XML Node Metadata");
|
||
var Je = class {
|
||
constructor(t) {
|
||
this.tagname = t, this.child = [], this[":@"] = {};
|
||
}
|
||
add(t, n) {
|
||
t === "__proto__" && (t = "#__proto__"), this.child.push({ [t]: n });
|
||
}
|
||
addChild(t, n) {
|
||
t.tagname === "__proto__" && (t.tagname = "#__proto__"), t[":@"] && Object.keys(t[":@"]).length > 0 ? this.child.push({ [t.tagname]: t.child, ":@": t[":@"] }) : this.child.push({ [t.tagname]: t.child }), n !== void 0 && (this.child[this.child.length - 1][Qt] = { startIndex: n });
|
||
}
|
||
/** symbol used for metadata */
|
||
static getMetaDataSymbol() {
|
||
return Qt;
|
||
}
|
||
};
|
||
function Vd(e, t) {
|
||
const n = {};
|
||
if (e[t + 3] === "O" && e[t + 4] === "C" && e[t + 5] === "T" && e[t + 6] === "Y" && e[t + 7] === "P" && e[t + 8] === "E") {
|
||
t = t + 9;
|
||
let r = 1, s = false, i = false, o = "";
|
||
for (; t < e.length; t++)
|
||
if (e[t] === "<" && !i) {
|
||
if (s && et(e, "!ENTITY", t)) {
|
||
t += 7;
|
||
let a, c;
|
||
[a, c, t] = Wd(e, t + 1), c.indexOf("&") === -1 && (n[a] = {
|
||
regx: RegExp(`&${a};`, "g"),
|
||
val: c
|
||
});
|
||
} else if (s && et(e, "!ELEMENT", t)) {
|
||
t += 8;
|
||
const { index: a } = Gd(e, t + 1);
|
||
t = a;
|
||
} else if (s && et(e, "!ATTLIST", t))
|
||
t += 8;
|
||
else if (s && et(e, "!NOTATION", t)) {
|
||
t += 9;
|
||
const { index: a } = Kd(e, t + 1);
|
||
t = a;
|
||
} else if (et(e, "!--", t))
|
||
i = true;
|
||
else
|
||
throw new Error("Invalid DOCTYPE");
|
||
r++, o = "";
|
||
} else if (e[t] === ">") {
|
||
if (i ? e[t - 1] === "-" && e[t - 2] === "-" && (i = false, r--) : r--, r === 0)
|
||
break;
|
||
} else
|
||
e[t] === "[" ? s = true : o += e[t];
|
||
if (r !== 0)
|
||
throw new Error("Unclosed DOCTYPE");
|
||
} else
|
||
throw new Error("Invalid Tag instead of DOCTYPE");
|
||
return { entities: n, i: t };
|
||
}
|
||
var We = (e, t) => {
|
||
for (; t < e.length && /\s/.test(e[t]); )
|
||
t++;
|
||
return t;
|
||
};
|
||
function Wd(e, t) {
|
||
t = We(e, t);
|
||
let n = "";
|
||
for (; t < e.length && !/\s/.test(e[t]) && e[t] !== '"' && e[t] !== "'"; )
|
||
n += e[t], t++;
|
||
if (Br(n), t = We(e, t), e.substring(t, t + 6).toUpperCase() === "SYSTEM")
|
||
throw new Error("External entities are not supported");
|
||
if (e[t] === "%")
|
||
throw new Error("Parameter entities are not supported");
|
||
let r = "";
|
||
return [t, r] = qt(e, t, "entity"), t--, [n, r, t];
|
||
}
|
||
function Kd(e, t) {
|
||
t = We(e, t);
|
||
let n = "";
|
||
for (; t < e.length && !/\s/.test(e[t]); )
|
||
n += e[t], t++;
|
||
Br(n), t = We(e, t);
|
||
const r = e.substring(t, t + 6).toUpperCase();
|
||
if (r !== "SYSTEM" && r !== "PUBLIC")
|
||
throw new Error(`Expected SYSTEM or PUBLIC, found "${r}"`);
|
||
t += r.length, t = We(e, t);
|
||
let s = null, i = null;
|
||
if (r === "PUBLIC")
|
||
[t, s] = qt(e, t, "publicIdentifier"), t = We(e, t), (e[t] === '"' || e[t] === "'") && ([t, i] = qt(e, t, "systemIdentifier"));
|
||
else if (r === "SYSTEM" && ([t, i] = qt(e, t, "systemIdentifier"), !i))
|
||
throw new Error("Missing mandatory system identifier for SYSTEM notation");
|
||
return { notationName: n, publicIdentifier: s, systemIdentifier: i, index: --t };
|
||
}
|
||
function qt(e, t, n) {
|
||
let r = "";
|
||
const s = e[t];
|
||
if (s !== '"' && s !== "'")
|
||
throw new Error(`Expected quoted string, found "${s}"`);
|
||
for (t++; t < e.length && e[t] !== s; )
|
||
r += e[t], t++;
|
||
if (e[t] !== s)
|
||
throw new Error(`Unterminated ${n} value`);
|
||
return t++, [t, r];
|
||
}
|
||
function Gd(e, t) {
|
||
t = We(e, t);
|
||
let n = "";
|
||
for (; t < e.length && !/\s/.test(e[t]); )
|
||
n += e[t], t++;
|
||
if (!Br(n))
|
||
throw new Error(`Invalid element name: "${n}"`);
|
||
t = We(e, t);
|
||
let r = "";
|
||
if (e[t] === "E" && et(e, "MPTY", t))
|
||
t += 4;
|
||
else if (e[t] === "A" && et(e, "NY", t))
|
||
t += 2;
|
||
else if (e[t] === "(") {
|
||
for (t++; t < e.length && e[t] !== ")"; )
|
||
r += e[t], t++;
|
||
if (e[t] !== ")")
|
||
throw new Error("Unterminated content model");
|
||
} else
|
||
throw new Error(`Invalid Element Expression, found "${e[t]}"`);
|
||
return {
|
||
elementName: n,
|
||
contentModel: r.trim(),
|
||
index: t
|
||
};
|
||
}
|
||
function et(e, t, n) {
|
||
for (let r = 0; r < t.length; r++)
|
||
if (t[r] !== e[n + r + 1])
|
||
return false;
|
||
return true;
|
||
}
|
||
function Br(e) {
|
||
if (Tr(e))
|
||
return e;
|
||
throw new Error(`Invalid entity name ${e}`);
|
||
}
|
||
var Zd = /^[-+]?0x[a-fA-F0-9]+$/;
|
||
var Xd = /^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/;
|
||
var Qd = {
|
||
hex: true,
|
||
// oct: false,
|
||
leadingZeros: true,
|
||
decimalPoint: ".",
|
||
eNotation: true
|
||
//skipLike: /regex/
|
||
};
|
||
function Yd(e, t = {}) {
|
||
if (t = Object.assign({}, Qd, t), !e || typeof e != "string")
|
||
return e;
|
||
let n = e.trim();
|
||
if (t.skipLike !== void 0 && t.skipLike.test(n))
|
||
return e;
|
||
if (e === "0")
|
||
return 0;
|
||
if (t.hex && Zd.test(n))
|
||
return nl(n, 16);
|
||
if (n.search(/.+[eE].+/) !== -1)
|
||
return el(e, n, t);
|
||
{
|
||
const r = Xd.exec(n);
|
||
if (r) {
|
||
const s = r[1] || "", i = r[2];
|
||
let o = tl(r[3]);
|
||
const a = s ? (
|
||
// 0., -00., 000.
|
||
e[i.length + 1] === "."
|
||
) : e[i.length] === ".";
|
||
if (!t.leadingZeros && (i.length > 1 || i.length === 1 && !a))
|
||
return e;
|
||
{
|
||
const c = Number(n), u = String(c);
|
||
if (c === 0)
|
||
return c;
|
||
if (u.search(/[eE]/) !== -1)
|
||
return t.eNotation ? c : e;
|
||
if (n.indexOf(".") !== -1)
|
||
return u === "0" || u === o || u === `${s}${o}` ? c : e;
|
||
let l = i ? o : n;
|
||
return i ? l === u || s + l === u ? c : e : l === u || l === s + u ? c : e;
|
||
}
|
||
} else
|
||
return e;
|
||
}
|
||
}
|
||
var Jd = /^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;
|
||
function el(e, t, n) {
|
||
if (!n.eNotation)
|
||
return e;
|
||
const r = t.match(Jd);
|
||
if (r) {
|
||
let s = r[1] || "";
|
||
const i = r[3].indexOf("e") === -1 ? "E" : "e", o = r[2], a = s ? (
|
||
// 0E.
|
||
e[o.length + 1] === i
|
||
) : e[o.length] === i;
|
||
return o.length > 1 && a ? e : o.length === 1 && (r[3].startsWith(`.${i}`) || r[3][0] === i) ? Number(t) : n.leadingZeros && !a ? (t = (r[1] || "") + r[3], Number(t)) : e;
|
||
} else
|
||
return e;
|
||
}
|
||
function tl(e) {
|
||
return e && e.indexOf(".") !== -1 && (e = e.replace(/0+$/, ""), e === "." ? e = "0" : e[0] === "." ? e = "0" + e : e[e.length - 1] === "." && (e = e.substring(0, e.length - 1))), e;
|
||
}
|
||
function nl(e, t) {
|
||
if (parseInt)
|
||
return parseInt(e, t);
|
||
if (Number.parseInt)
|
||
return Number.parseInt(e, t);
|
||
if (window && window.parseInt)
|
||
return window.parseInt(e, t);
|
||
throw new Error("parseInt, Number.parseInt, window.parseInt are not supported");
|
||
}
|
||
function rl(e) {
|
||
return typeof e == "function" ? e : Array.isArray(e) ? (t) => {
|
||
for (const n of e)
|
||
if (typeof n == "string" && t === n || n instanceof RegExp && n.test(t))
|
||
return true;
|
||
} : () => false;
|
||
}
|
||
var sl = class {
|
||
constructor(t) {
|
||
this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {
|
||
apos: { regex: /&(apos|#39|#x27);/g, val: "'" },
|
||
gt: { regex: /&(gt|#62|#x3E);/g, val: ">" },
|
||
lt: { regex: /&(lt|#60|#x3C);/g, val: "<" },
|
||
quot: { regex: /&(quot|#34|#x22);/g, val: '"' }
|
||
}, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: "&" }, this.htmlEntities = {
|
||
space: { regex: /&(nbsp|#160);/g, val: " " },
|
||
// "lt" : { regex: /&(lt|#60);/g, val: "<" },
|
||
// "gt" : { regex: /&(gt|#62);/g, val: ">" },
|
||
// "amp" : { regex: /&(amp|#38);/g, val: "&" },
|
||
// "quot" : { regex: /&(quot|#34);/g, val: "\"" },
|
||
// "apos" : { regex: /&(apos|#39);/g, val: "'" },
|
||
cent: { regex: /&(cent|#162);/g, val: "¢" },
|
||
pound: { regex: /&(pound|#163);/g, val: "£" },
|
||
yen: { regex: /&(yen|#165);/g, val: "¥" },
|
||
euro: { regex: /&(euro|#8364);/g, val: "€" },
|
||
copyright: { regex: /&(copy|#169);/g, val: "©" },
|
||
reg: { regex: /&(reg|#174);/g, val: "®" },
|
||
inr: { regex: /&(inr|#8377);/g, val: "₹" },
|
||
num_dec: { regex: /&#([0-9]{1,7});/g, val: (n, r) => String.fromCodePoint(Number.parseInt(r, 10)) },
|
||
num_hex: { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (n, r) => String.fromCodePoint(Number.parseInt(r, 16)) }
|
||
}, this.addExternalEntities = il, this.parseXml = dl, this.parseTextData = ol, this.resolveNameSpace = al, this.buildAttributesMap = ul, this.isItStopNode = pl, this.replaceEntitiesValue = fl, this.readStopNodeData = ml, this.saveTextToParentTag = hl, this.addChild = ll, this.ignoreAttributesFn = rl(this.options.ignoreAttributes);
|
||
}
|
||
};
|
||
function il(e) {
|
||
const t = Object.keys(e);
|
||
for (let n = 0; n < t.length; n++) {
|
||
const r = t[n];
|
||
this.lastEntities[r] = {
|
||
regex: new RegExp("&" + r + ";", "g"),
|
||
val: e[r]
|
||
};
|
||
}
|
||
}
|
||
function ol(e, t, n, r, s, i, o) {
|
||
if (e !== void 0 && (this.options.trimValues && !r && (e = e.trim()), e.length > 0)) {
|
||
o || (e = this.replaceEntitiesValue(e));
|
||
const a = this.options.tagValueProcessor(t, e, n, s, i);
|
||
return a == null ? e : typeof a != typeof e || a !== e ? a : this.options.trimValues ? hr(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? hr(e, this.options.parseTagValue, this.options.numberParseOptions) : e;
|
||
}
|
||
}
|
||
function al(e) {
|
||
if (this.options.removeNSPrefix) {
|
||
const t = e.split(":"), n = e.charAt(0) === "/" ? "/" : "";
|
||
if (t[0] === "xmlns")
|
||
return "";
|
||
t.length === 2 && (e = n + t[1]);
|
||
}
|
||
return e;
|
||
}
|
||
var cl = new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`, "gm");
|
||
function ul(e, t, n) {
|
||
if (this.options.ignoreAttributes !== true && typeof e == "string") {
|
||
const r = Ko(e, cl), s = r.length, i = {};
|
||
for (let o = 0; o < s; o++) {
|
||
const a = this.resolveNameSpace(r[o][1]);
|
||
if (this.ignoreAttributesFn(a, t))
|
||
continue;
|
||
let c = r[o][4], u = this.options.attributeNamePrefix + a;
|
||
if (a.length)
|
||
if (this.options.transformAttributeName && (u = this.options.transformAttributeName(u)), u === "__proto__" && (u = "#__proto__"), c !== void 0) {
|
||
this.options.trimValues && (c = c.trim()), c = this.replaceEntitiesValue(c);
|
||
const l = this.options.attributeValueProcessor(a, c, t);
|
||
l == null ? i[u] = c : typeof l != typeof c || l !== c ? i[u] = l : i[u] = hr(
|
||
c,
|
||
this.options.parseAttributeValue,
|
||
this.options.numberParseOptions
|
||
);
|
||
} else
|
||
this.options.allowBooleanAttributes && (i[u] = true);
|
||
}
|
||
if (!Object.keys(i).length)
|
||
return;
|
||
if (this.options.attributesGroupName) {
|
||
const o = {};
|
||
return o[this.options.attributesGroupName] = i, o;
|
||
}
|
||
return i;
|
||
}
|
||
}
|
||
var dl = function(e) {
|
||
e = e.replace(/\r\n?/g, `
|
||
`);
|
||
const t = new Je("!xml");
|
||
let n = t, r = "", s = "";
|
||
for (let i = 0; i < e.length; i++)
|
||
if (e[i] === "<")
|
||
if (e[i + 1] === "/") {
|
||
const a = nt(e, ">", i, "Closing Tag is not closed.");
|
||
let c = e.substring(i + 2, a).trim();
|
||
if (this.options.removeNSPrefix) {
|
||
const f = c.indexOf(":");
|
||
f !== -1 && (c = c.substr(f + 1));
|
||
}
|
||
this.options.transformTagName && (c = this.options.transformTagName(c)), n && (r = this.saveTextToParentTag(r, n, s));
|
||
const u = s.substring(s.lastIndexOf(".") + 1);
|
||
if (c && this.options.unpairedTags.indexOf(c) !== -1)
|
||
throw new Error(`Unpaired tag can not be used as closing tag: </${c}>`);
|
||
let l = 0;
|
||
u && this.options.unpairedTags.indexOf(u) !== -1 ? (l = s.lastIndexOf(".", s.lastIndexOf(".") - 1), this.tagsNodeStack.pop()) : l = s.lastIndexOf("."), s = s.substring(0, l), n = this.tagsNodeStack.pop(), r = "", i = a;
|
||
} else if (e[i + 1] === "?") {
|
||
let a = fr(e, i, false, "?>");
|
||
if (!a)
|
||
throw new Error("Pi Tag is not closed.");
|
||
if (r = this.saveTextToParentTag(r, n, s), !(this.options.ignoreDeclaration && a.tagName === "?xml" || this.options.ignorePiTags)) {
|
||
const c = new Je(a.tagName);
|
||
c.add(this.options.textNodeName, ""), a.tagName !== a.tagExp && a.attrExpPresent && (c[":@"] = this.buildAttributesMap(a.tagExp, s, a.tagName)), this.addChild(n, c, s, i);
|
||
}
|
||
i = a.closeIndex + 1;
|
||
} else if (e.substr(i + 1, 3) === "!--") {
|
||
const a = nt(e, "-->", i + 4, "Comment is not closed.");
|
||
if (this.options.commentPropName) {
|
||
const c = e.substring(i + 4, a - 2);
|
||
r = this.saveTextToParentTag(r, n, s), n.add(this.options.commentPropName, [{ [this.options.textNodeName]: c }]);
|
||
}
|
||
i = a;
|
||
} else if (e.substr(i + 1, 2) === "!D") {
|
||
const a = Vd(e, i);
|
||
this.docTypeEntities = a.entities, i = a.i;
|
||
} else if (e.substr(i + 1, 2) === "![") {
|
||
const a = nt(e, "]]>", i, "CDATA is not closed.") - 2, c = e.substring(i + 9, a);
|
||
r = this.saveTextToParentTag(r, n, s);
|
||
let u = this.parseTextData(c, n.tagname, s, true, false, true, true);
|
||
u == null && (u = ""), this.options.cdataPropName ? n.add(this.options.cdataPropName, [{ [this.options.textNodeName]: c }]) : n.add(this.options.textNodeName, u), i = a + 2;
|
||
} else {
|
||
let a = fr(e, i, this.options.removeNSPrefix), c = a.tagName;
|
||
const u = a.rawTagName;
|
||
let l = a.tagExp, f = a.attrExpPresent, p = a.closeIndex;
|
||
this.options.transformTagName && (c = this.options.transformTagName(c)), n && r && n.tagname !== "!xml" && (r = this.saveTextToParentTag(r, n, s, false));
|
||
const g = n;
|
||
g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (n = this.tagsNodeStack.pop(), s = s.substring(0, s.lastIndexOf("."))), c !== t.tagname && (s += s ? "." + c : c);
|
||
const S = i;
|
||
if (this.isItStopNode(this.options.stopNodes, s, c)) {
|
||
let T = "";
|
||
if (l.length > 0 && l.lastIndexOf("/") === l.length - 1)
|
||
c[c.length - 1] === "/" ? (c = c.substr(0, c.length - 1), s = s.substr(0, s.length - 1), l = c) : l = l.substr(0, l.length - 1), i = a.closeIndex;
|
||
else if (this.options.unpairedTags.indexOf(c) !== -1)
|
||
i = a.closeIndex;
|
||
else {
|
||
const I = this.readStopNodeData(e, u, p + 1);
|
||
if (!I)
|
||
throw new Error(`Unexpected end of ${u}`);
|
||
i = I.i, T = I.tagContent;
|
||
}
|
||
const A = new Je(c);
|
||
c !== l && f && (A[":@"] = this.buildAttributesMap(l, s, c)), T && (T = this.parseTextData(T, c, s, true, f, true, true)), s = s.substr(0, s.lastIndexOf(".")), A.add(this.options.textNodeName, T), this.addChild(n, A, s, S);
|
||
} else {
|
||
if (l.length > 0 && l.lastIndexOf("/") === l.length - 1) {
|
||
c[c.length - 1] === "/" ? (c = c.substr(0, c.length - 1), s = s.substr(0, s.length - 1), l = c) : l = l.substr(0, l.length - 1), this.options.transformTagName && (c = this.options.transformTagName(c));
|
||
const T = new Je(c);
|
||
c !== l && f && (T[":@"] = this.buildAttributesMap(l, s, c)), this.addChild(n, T, s, S), s = s.substr(0, s.lastIndexOf("."));
|
||
} else {
|
||
const T = new Je(c);
|
||
this.tagsNodeStack.push(n), c !== l && f && (T[":@"] = this.buildAttributesMap(l, s, c)), this.addChild(n, T, s, S), n = T;
|
||
}
|
||
r = "", i = p;
|
||
}
|
||
}
|
||
else
|
||
r += e[i];
|
||
return t.child;
|
||
};
|
||
function ll(e, t, n, r) {
|
||
this.options.captureMetaData || (r = void 0);
|
||
const s = this.options.updateTag(t.tagname, n, t[":@"]);
|
||
s === false || (typeof s == "string" && (t.tagname = s), e.addChild(t, r));
|
||
}
|
||
var fl = function(e) {
|
||
if (this.options.processEntities) {
|
||
for (let t in this.docTypeEntities) {
|
||
const n = this.docTypeEntities[t];
|
||
e = e.replace(n.regx, n.val);
|
||
}
|
||
for (let t in this.lastEntities) {
|
||
const n = this.lastEntities[t];
|
||
e = e.replace(n.regex, n.val);
|
||
}
|
||
if (this.options.htmlEntities)
|
||
for (let t in this.htmlEntities) {
|
||
const n = this.htmlEntities[t];
|
||
e = e.replace(n.regex, n.val);
|
||
}
|
||
e = e.replace(this.ampEntity.regex, this.ampEntity.val);
|
||
}
|
||
return e;
|
||
};
|
||
function hl(e, t, n, r) {
|
||
return e && (r === void 0 && (r = t.child.length === 0), e = this.parseTextData(
|
||
e,
|
||
t.tagname,
|
||
n,
|
||
false,
|
||
t[":@"] ? Object.keys(t[":@"]).length !== 0 : false,
|
||
r
|
||
), e !== void 0 && e !== "" && t.add(this.options.textNodeName, e), e = ""), e;
|
||
}
|
||
function pl(e, t, n) {
|
||
const r = "*." + n;
|
||
for (const s in e) {
|
||
const i = e[s];
|
||
if (r === i || t === i)
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
function gl(e, t, n = ">") {
|
||
let r, s = "";
|
||
for (let i = t; i < e.length; i++) {
|
||
let o = e[i];
|
||
if (r)
|
||
o === r && (r = "");
|
||
else if (o === '"' || o === "'")
|
||
r = o;
|
||
else if (o === n[0])
|
||
if (n[1]) {
|
||
if (e[i + 1] === n[1])
|
||
return {
|
||
data: s,
|
||
index: i
|
||
};
|
||
} else
|
||
return {
|
||
data: s,
|
||
index: i
|
||
};
|
||
else
|
||
o === " " && (o = " ");
|
||
s += o;
|
||
}
|
||
}
|
||
function nt(e, t, n, r) {
|
||
const s = e.indexOf(t, n);
|
||
if (s === -1)
|
||
throw new Error(r);
|
||
return s + t.length - 1;
|
||
}
|
||
function fr(e, t, n, r = ">") {
|
||
const s = gl(e, t + 1, r);
|
||
if (!s)
|
||
return;
|
||
let i = s.data;
|
||
const o = s.index, a = i.search(/\s/);
|
||
let c = i, u = true;
|
||
a !== -1 && (c = i.substring(0, a), i = i.substring(a + 1).trimStart());
|
||
const l = c;
|
||
if (n) {
|
||
const f = c.indexOf(":");
|
||
f !== -1 && (c = c.substr(f + 1), u = c !== s.data.substr(f + 1));
|
||
}
|
||
return {
|
||
tagName: c,
|
||
tagExp: i,
|
||
closeIndex: o,
|
||
attrExpPresent: u,
|
||
rawTagName: l
|
||
};
|
||
}
|
||
function ml(e, t, n) {
|
||
const r = n;
|
||
let s = 1;
|
||
for (; n < e.length; n++)
|
||
if (e[n] === "<")
|
||
if (e[n + 1] === "/") {
|
||
const i = nt(e, ">", n, `${t} is not closed`);
|
||
if (e.substring(n + 2, i).trim() === t && (s--, s === 0))
|
||
return {
|
||
tagContent: e.substring(r, n),
|
||
i
|
||
};
|
||
n = i;
|
||
} else if (e[n + 1] === "?")
|
||
n = nt(e, "?>", n + 1, "StopNode is not closed.");
|
||
else if (e.substr(n + 1, 3) === "!--")
|
||
n = nt(e, "-->", n + 3, "StopNode is not closed.");
|
||
else if (e.substr(n + 1, 2) === "![")
|
||
n = nt(e, "]]>", n, "StopNode is not closed.") - 2;
|
||
else {
|
||
const i = fr(e, n, ">");
|
||
i && ((i && i.tagName) === t && i.tagExp[i.tagExp.length - 1] !== "/" && s++, n = i.closeIndex);
|
||
}
|
||
}
|
||
function hr(e, t, n) {
|
||
if (t && typeof e == "string") {
|
||
const r = e.trim();
|
||
return r === "true" ? true : r === "false" ? false : Yd(e, n);
|
||
} else
|
||
return Pd(e) ? e : "";
|
||
}
|
||
var kn = Je.getMetaDataSymbol();
|
||
function yl(e, t) {
|
||
return Go(e, t);
|
||
}
|
||
function Go(e, t, n) {
|
||
let r;
|
||
const s = {};
|
||
for (let i = 0; i < e.length; i++) {
|
||
const o = e[i], a = wl(o);
|
||
let c = "";
|
||
if (n === void 0 ? c = a : c = n + "." + a, a === t.textNodeName)
|
||
r === void 0 ? r = o[a] : r += "" + o[a];
|
||
else {
|
||
if (a === void 0)
|
||
continue;
|
||
if (o[a]) {
|
||
let u = Go(o[a], t, c);
|
||
const l = El(u, t);
|
||
o[kn] !== void 0 && (u[kn] = o[kn]), o[":@"] ? bl(u, o[":@"], c, t) : Object.keys(u).length === 1 && u[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? u = u[t.textNodeName] : Object.keys(u).length === 0 && (t.alwaysCreateTextNode ? u[t.textNodeName] = "" : u = ""), s[a] !== void 0 && s.hasOwnProperty(a) ? (Array.isArray(s[a]) || (s[a] = [s[a]]), s[a].push(u)) : t.isArray(a, c, l) ? s[a] = [u] : s[a] = u;
|
||
}
|
||
}
|
||
}
|
||
return typeof r == "string" ? r.length > 0 && (s[t.textNodeName] = r) : r !== void 0 && (s[t.textNodeName] = r), s;
|
||
}
|
||
function wl(e) {
|
||
const t = Object.keys(e);
|
||
for (let n = 0; n < t.length; n++) {
|
||
const r = t[n];
|
||
if (r !== ":@")
|
||
return r;
|
||
}
|
||
}
|
||
function bl(e, t, n, r) {
|
||
if (t) {
|
||
const s = Object.keys(t), i = s.length;
|
||
for (let o = 0; o < i; o++) {
|
||
const a = s[o];
|
||
r.isArray(a, n + "." + a, true, true) ? e[a] = [t[a]] : e[a] = t[a];
|
||
}
|
||
}
|
||
}
|
||
function El(e, t) {
|
||
const { textNodeName: n } = t, r = Object.keys(e).length;
|
||
return !!(r === 0 || r === 1 && (e[n] || typeof e[n] == "boolean" || e[n] === 0));
|
||
}
|
||
var xl = class {
|
||
constructor(t) {
|
||
this.externalEntities = {}, this.options = qd(t);
|
||
}
|
||
/**
|
||
* Parse XML dats to JS object
|
||
* @param {string|Buffer} xmlData
|
||
* @param {boolean|Object} validationOption
|
||
*/
|
||
parse(t, n) {
|
||
if (typeof t != "string")
|
||
if (t.toString)
|
||
t = t.toString();
|
||
else
|
||
throw new Error("XML data is accepted in String or Bytes[] form.");
|
||
if (n) {
|
||
n === true && (n = {});
|
||
const i = Md(t, n);
|
||
if (i !== true)
|
||
throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`);
|
||
}
|
||
const r = new sl(this.options);
|
||
r.addExternalEntities(this.externalEntities);
|
||
const s = r.parseXml(t);
|
||
return this.options.preserveOrder || s === void 0 ? s : yl(s, this.options);
|
||
}
|
||
/**
|
||
* Add Entity which is not by default supported by this library
|
||
* @param {string} key
|
||
* @param {string} value
|
||
*/
|
||
addEntity(t, n) {
|
||
if (n.indexOf("&") !== -1)
|
||
throw new Error("Entity value can't have '&'");
|
||
if (t.indexOf("&") !== -1 || t.indexOf(";") !== -1)
|
||
throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");
|
||
if (n === "&")
|
||
throw new Error("An entity with value '&' is not permitted");
|
||
this.externalEntities[t] = n;
|
||
}
|
||
/**
|
||
* Returns a Symbol that can be used to access the metadata
|
||
* property on a node.
|
||
*
|
||
* If Symbol is not available in the environment, an ordinary property is used
|
||
* and the name of the property is here returned.
|
||
*
|
||
* The XMLMetaData property is only present when `captureMetaData`
|
||
* is true in the options.
|
||
*/
|
||
static getMetaDataSymbol() {
|
||
return Je.getMetaDataSymbol();
|
||
}
|
||
};
|
||
var Zo = (e, t) => Td(e, t).then((n) => {
|
||
if (n.length) {
|
||
const r = new xl({
|
||
attributeNamePrefix: "",
|
||
htmlEntities: true,
|
||
ignoreAttributes: false,
|
||
ignoreDeclaration: true,
|
||
parseTagValue: false,
|
||
trimValues: false,
|
||
tagValueProcessor: (c, u) => u.trim() === "" && u.includes(`
|
||
`) ? "" : void 0
|
||
});
|
||
r.addEntity("#xD", "\r"), r.addEntity("#10", `
|
||
`);
|
||
let s;
|
||
try {
|
||
s = r.parse(n, true);
|
||
} catch (c) {
|
||
throw c && typeof c == "object" && Object.defineProperty(c, "$responseBodyText", {
|
||
value: n
|
||
}), c;
|
||
}
|
||
const i = "#text", o = Object.keys(s)[0], a = s[o];
|
||
return a[i] && (a[o] = a[i], delete a[i]), Vo(a);
|
||
}
|
||
return {};
|
||
});
|
||
var Sl = async (e, t) => {
|
||
const n = await Zo(e, t);
|
||
return n.Error && (n.Error.message = n.Error.message ?? n.Error.Message), n;
|
||
};
|
||
var Al = (e, t) => {
|
||
var n;
|
||
if (((n = t == null ? void 0 : t.Error) == null ? void 0 : n.Code) !== void 0)
|
||
return t.Error.Code;
|
||
if ((t == null ? void 0 : t.Code) !== void 0)
|
||
return t.Code;
|
||
if (e.statusCode == 404)
|
||
return "NotFound";
|
||
};
|
||
var pr = [
|
||
V.CRC32,
|
||
V.CRC32C,
|
||
V.CRC64NVME,
|
||
V.SHA1,
|
||
V.SHA256
|
||
];
|
||
var Cl = [
|
||
V.SHA256,
|
||
V.SHA1,
|
||
V.CRC32,
|
||
V.CRC32C,
|
||
V.CRC64NVME
|
||
];
|
||
var vl = (e, { requestChecksumRequired: t, requestAlgorithmMember: n, requestChecksumCalculation: r }) => {
|
||
if (!n)
|
||
return r === mt.WHEN_SUPPORTED || t ? or : void 0;
|
||
if (!e[n])
|
||
return;
|
||
const s = e[n];
|
||
if (!pr.includes(s))
|
||
throw new Error(`The checksum algorithm "${s}" is not supported by the client. Select one of ${pr}.`);
|
||
return s;
|
||
};
|
||
var Ir = (e) => e === V.MD5 ? "content-md5" : `x-amz-checksum-${e.toLowerCase()}`;
|
||
var Rl = (e, t) => {
|
||
const n = e.toLowerCase();
|
||
for (const r of Object.keys(t))
|
||
if (n === r.toLowerCase())
|
||
return true;
|
||
return false;
|
||
};
|
||
var kl = (e, t) => {
|
||
const n = e.toLowerCase();
|
||
for (const r of Object.keys(t))
|
||
if (r.toLowerCase().startsWith(n))
|
||
return true;
|
||
return false;
|
||
};
|
||
var Xo = (e) => e !== void 0 && typeof e != "string" && !ArrayBuffer.isView(e) && !jo(e);
|
||
function _r(e, t, n, r) {
|
||
function s(i) {
|
||
return i instanceof n ? i : new n(function(o) {
|
||
o(i);
|
||
});
|
||
}
|
||
return new (n || (n = Promise))(function(i, o) {
|
||
function a(l) {
|
||
try {
|
||
u(r.next(l));
|
||
} catch (f) {
|
||
o(f);
|
||
}
|
||
}
|
||
function c(l) {
|
||
try {
|
||
u(r.throw(l));
|
||
} catch (f) {
|
||
o(f);
|
||
}
|
||
}
|
||
function u(l) {
|
||
l.done ? i(l.value) : s(l.value).then(a, c);
|
||
}
|
||
u((r = r.apply(e, t || [])).next());
|
||
});
|
||
}
|
||
function Pr(e, t) {
|
||
var n = { label: 0, sent: function() {
|
||
if (i[0] & 1)
|
||
throw i[1];
|
||
return i[1];
|
||
}, trys: [], ops: [] }, r, s, i, o = Object.create((typeof Iterator == "function" ? Iterator : Object).prototype);
|
||
return o.next = a(0), o.throw = a(1), o.return = a(2), typeof Symbol == "function" && (o[Symbol.iterator] = function() {
|
||
return this;
|
||
}), o;
|
||
function a(u) {
|
||
return function(l) {
|
||
return c([u, l]);
|
||
};
|
||
}
|
||
function c(u) {
|
||
if (r)
|
||
throw new TypeError("Generator is already executing.");
|
||
for (; o && (o = 0, u[0] && (n = 0)), n; )
|
||
try {
|
||
if (r = 1, s && (i = u[0] & 2 ? s.return : u[0] ? s.throw || ((i = s.return) && i.call(s), 0) : s.next) && !(i = i.call(s, u[1])).done)
|
||
return i;
|
||
switch (s = 0, i && (u = [u[0] & 2, i.value]), u[0]) {
|
||
case 0:
|
||
case 1:
|
||
i = u;
|
||
break;
|
||
case 4:
|
||
return n.label++, { value: u[1], done: false };
|
||
case 5:
|
||
n.label++, s = u[1], u = [0];
|
||
continue;
|
||
case 7:
|
||
u = n.ops.pop(), n.trys.pop();
|
||
continue;
|
||
default:
|
||
if (i = n.trys, !(i = i.length > 0 && i[i.length - 1]) && (u[0] === 6 || u[0] === 2)) {
|
||
n = 0;
|
||
continue;
|
||
}
|
||
if (u[0] === 3 && (!i || u[1] > i[0] && u[1] < i[3])) {
|
||
n.label = u[1];
|
||
break;
|
||
}
|
||
if (u[0] === 6 && n.label < i[1]) {
|
||
n.label = i[1], i = u;
|
||
break;
|
||
}
|
||
if (i && n.label < i[2]) {
|
||
n.label = i[2], n.ops.push(u);
|
||
break;
|
||
}
|
||
i[2] && n.ops.pop(), n.trys.pop();
|
||
continue;
|
||
}
|
||
u = t.call(e, n);
|
||
} catch (l) {
|
||
u = [6, l], s = 0;
|
||
} finally {
|
||
r = i = 0;
|
||
}
|
||
if (u[0] & 5)
|
||
throw u[1];
|
||
return { value: u[0] ? u[1] : void 0, done: true };
|
||
}
|
||
}
|
||
function Qo(e) {
|
||
var t = typeof Symbol == "function" && Symbol.iterator, n = t && e[t], r = 0;
|
||
if (n)
|
||
return n.call(e);
|
||
if (e && typeof e.length == "number")
|
||
return {
|
||
next: function() {
|
||
return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e };
|
||
}
|
||
};
|
||
throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
||
}
|
||
var Yo = (e) => new TextEncoder().encode(e);
|
||
var Tl = typeof Buffer < "u" && Buffer.from ? function(e) {
|
||
return Buffer.from(e, "utf8");
|
||
} : Yo;
|
||
function Ze(e) {
|
||
return e instanceof Uint8Array ? e : typeof e == "string" ? Tl(e) : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength / Uint8Array.BYTES_PER_ELEMENT) : new Uint8Array(e);
|
||
}
|
||
function Ft(e) {
|
||
return typeof e == "string" ? e.length === 0 : e.byteLength === 0;
|
||
}
|
||
function Jo(e) {
|
||
return new Uint8Array([
|
||
(e & 4278190080) >> 24,
|
||
(e & 16711680) >> 16,
|
||
(e & 65280) >> 8,
|
||
e & 255
|
||
]);
|
||
}
|
||
function ea(e) {
|
||
if (!Uint32Array.from) {
|
||
for (var t = new Uint32Array(e.length), n = 0; n < e.length; )
|
||
t[n] = e[n], n += 1;
|
||
return t;
|
||
}
|
||
return Uint32Array.from(e);
|
||
}
|
||
var Bl = (
|
||
/** @class */
|
||
function() {
|
||
function e() {
|
||
this.crc32c = new Ps();
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
Ft(t) || this.crc32c.update(Ze(t));
|
||
}, e.prototype.digest = function() {
|
||
return _r(this, void 0, void 0, function() {
|
||
return Pr(this, function(t) {
|
||
return [2, Jo(this.crc32c.digest())];
|
||
});
|
||
});
|
||
}, e.prototype.reset = function() {
|
||
this.crc32c = new Ps();
|
||
}, e;
|
||
}()
|
||
);
|
||
var Ps = (
|
||
/** @class */
|
||
function() {
|
||
function e() {
|
||
this.checksum = 4294967295;
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
var n, r;
|
||
try {
|
||
for (var s = Qo(t), i = s.next(); !i.done; i = s.next()) {
|
||
var o = i.value;
|
||
this.checksum = this.checksum >>> 8 ^ _l[(this.checksum ^ o) & 255];
|
||
}
|
||
} catch (a) {
|
||
n = { error: a };
|
||
} finally {
|
||
try {
|
||
i && !i.done && (r = s.return) && r.call(s);
|
||
} finally {
|
||
if (n)
|
||
throw n.error;
|
||
}
|
||
}
|
||
return this;
|
||
}, e.prototype.digest = function() {
|
||
return (this.checksum ^ 4294967295) >>> 0;
|
||
}, e;
|
||
}()
|
||
);
|
||
var Il = [
|
||
0,
|
||
4067132163,
|
||
3778769143,
|
||
324072436,
|
||
3348797215,
|
||
904991772,
|
||
648144872,
|
||
3570033899,
|
||
2329499855,
|
||
2024987596,
|
||
1809983544,
|
||
2575936315,
|
||
1296289744,
|
||
3207089363,
|
||
2893594407,
|
||
1578318884,
|
||
274646895,
|
||
3795141740,
|
||
4049975192,
|
||
51262619,
|
||
3619967088,
|
||
632279923,
|
||
922689671,
|
||
3298075524,
|
||
2592579488,
|
||
1760304291,
|
||
2075979607,
|
||
2312596564,
|
||
1562183871,
|
||
2943781820,
|
||
3156637768,
|
||
1313733451,
|
||
549293790,
|
||
3537243613,
|
||
3246849577,
|
||
871202090,
|
||
3878099393,
|
||
357341890,
|
||
102525238,
|
||
4101499445,
|
||
2858735121,
|
||
1477399826,
|
||
1264559846,
|
||
3107202533,
|
||
1845379342,
|
||
2677391885,
|
||
2361733625,
|
||
2125378298,
|
||
820201905,
|
||
3263744690,
|
||
3520608582,
|
||
598981189,
|
||
4151959214,
|
||
85089709,
|
||
373468761,
|
||
3827903834,
|
||
3124367742,
|
||
1213305469,
|
||
1526817161,
|
||
2842354314,
|
||
2107672161,
|
||
2412447074,
|
||
2627466902,
|
||
1861252501,
|
||
1098587580,
|
||
3004210879,
|
||
2688576843,
|
||
1378610760,
|
||
2262928035,
|
||
1955203488,
|
||
1742404180,
|
||
2511436119,
|
||
3416409459,
|
||
969524848,
|
||
714683780,
|
||
3639785095,
|
||
205050476,
|
||
4266873199,
|
||
3976438427,
|
||
526918040,
|
||
1361435347,
|
||
2739821008,
|
||
2954799652,
|
||
1114974503,
|
||
2529119692,
|
||
1691668175,
|
||
2005155131,
|
||
2247081528,
|
||
3690758684,
|
||
697762079,
|
||
986182379,
|
||
3366744552,
|
||
476452099,
|
||
3993867776,
|
||
4250756596,
|
||
255256311,
|
||
1640403810,
|
||
2477592673,
|
||
2164122517,
|
||
1922457750,
|
||
2791048317,
|
||
1412925310,
|
||
1197962378,
|
||
3037525897,
|
||
3944729517,
|
||
427051182,
|
||
170179418,
|
||
4165941337,
|
||
746937522,
|
||
3740196785,
|
||
3451792453,
|
||
1070968646,
|
||
1905808397,
|
||
2213795598,
|
||
2426610938,
|
||
1657317369,
|
||
3053634322,
|
||
1147748369,
|
||
1463399397,
|
||
2773627110,
|
||
4215344322,
|
||
153784257,
|
||
444234805,
|
||
3893493558,
|
||
1021025245,
|
||
3467647198,
|
||
3722505002,
|
||
797665321,
|
||
2197175160,
|
||
1889384571,
|
||
1674398607,
|
||
2443626636,
|
||
1164749927,
|
||
3070701412,
|
||
2757221520,
|
||
1446797203,
|
||
137323447,
|
||
4198817972,
|
||
3910406976,
|
||
461344835,
|
||
3484808360,
|
||
1037989803,
|
||
781091935,
|
||
3705997148,
|
||
2460548119,
|
||
1623424788,
|
||
1939049696,
|
||
2180517859,
|
||
1429367560,
|
||
2807687179,
|
||
3020495871,
|
||
1180866812,
|
||
410100952,
|
||
3927582683,
|
||
4182430767,
|
||
186734380,
|
||
3756733383,
|
||
763408580,
|
||
1053836080,
|
||
3434856499,
|
||
2722870694,
|
||
1344288421,
|
||
1131464017,
|
||
2971354706,
|
||
1708204729,
|
||
2545590714,
|
||
2229949006,
|
||
1988219213,
|
||
680717673,
|
||
3673779818,
|
||
3383336350,
|
||
1002577565,
|
||
4010310262,
|
||
493091189,
|
||
238226049,
|
||
4233660802,
|
||
2987750089,
|
||
1082061258,
|
||
1395524158,
|
||
2705686845,
|
||
1972364758,
|
||
2279892693,
|
||
2494862625,
|
||
1725896226,
|
||
952904198,
|
||
3399985413,
|
||
3656866545,
|
||
731699698,
|
||
4283874585,
|
||
222117402,
|
||
510512622,
|
||
3959836397,
|
||
3280807620,
|
||
837199303,
|
||
582374963,
|
||
3504198960,
|
||
68661723,
|
||
4135334616,
|
||
3844915500,
|
||
390545967,
|
||
1230274059,
|
||
3141532936,
|
||
2825850620,
|
||
1510247935,
|
||
2395924756,
|
||
2091215383,
|
||
1878366691,
|
||
2644384480,
|
||
3553878443,
|
||
565732008,
|
||
854102364,
|
||
3229815391,
|
||
340358836,
|
||
3861050807,
|
||
4117890627,
|
||
119113024,
|
||
1493875044,
|
||
2875275879,
|
||
3090270611,
|
||
1247431312,
|
||
2660249211,
|
||
1828433272,
|
||
2141937292,
|
||
2378227087,
|
||
3811616794,
|
||
291187481,
|
||
34330861,
|
||
4032846830,
|
||
615137029,
|
||
3603020806,
|
||
3314634738,
|
||
939183345,
|
||
1776939221,
|
||
2609017814,
|
||
2295496738,
|
||
2058945313,
|
||
2926798794,
|
||
1545135305,
|
||
1330124605,
|
||
3173225534,
|
||
4084100981,
|
||
17165430,
|
||
307568514,
|
||
3762199681,
|
||
888469610,
|
||
3332340585,
|
||
3587147933,
|
||
665062302,
|
||
2042050490,
|
||
2346497209,
|
||
2559330125,
|
||
1793573966,
|
||
3190661285,
|
||
1279665062,
|
||
1595330642,
|
||
2910671697
|
||
];
|
||
var _l = ea(Il);
|
||
var Pl = (
|
||
/** @class */
|
||
function() {
|
||
function e() {
|
||
this.crc32 = new Yt();
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
Ft(t) || this.crc32.update(Ze(t));
|
||
}, e.prototype.digest = function() {
|
||
return _r(this, void 0, void 0, function() {
|
||
return Pr(this, function(t) {
|
||
return [2, Jo(this.crc32.digest())];
|
||
});
|
||
});
|
||
}, e.prototype.reset = function() {
|
||
this.crc32 = new Yt();
|
||
}, e;
|
||
}()
|
||
);
|
||
var Yt = (
|
||
/** @class */
|
||
function() {
|
||
function e() {
|
||
this.checksum = 4294967295;
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
var n, r;
|
||
try {
|
||
for (var s = Qo(t), i = s.next(); !i.done; i = s.next()) {
|
||
var o = i.value;
|
||
this.checksum = this.checksum >>> 8 ^ Ml[(this.checksum ^ o) & 255];
|
||
}
|
||
} catch (a) {
|
||
n = { error: a };
|
||
} finally {
|
||
try {
|
||
i && !i.done && (r = s.return) && r.call(s);
|
||
} finally {
|
||
if (n)
|
||
throw n.error;
|
||
}
|
||
}
|
||
return this;
|
||
}, e.prototype.digest = function() {
|
||
return (this.checksum ^ 4294967295) >>> 0;
|
||
}, e;
|
||
}()
|
||
);
|
||
var Nl = [
|
||
0,
|
||
1996959894,
|
||
3993919788,
|
||
2567524794,
|
||
124634137,
|
||
1886057615,
|
||
3915621685,
|
||
2657392035,
|
||
249268274,
|
||
2044508324,
|
||
3772115230,
|
||
2547177864,
|
||
162941995,
|
||
2125561021,
|
||
3887607047,
|
||
2428444049,
|
||
498536548,
|
||
1789927666,
|
||
4089016648,
|
||
2227061214,
|
||
450548861,
|
||
1843258603,
|
||
4107580753,
|
||
2211677639,
|
||
325883990,
|
||
1684777152,
|
||
4251122042,
|
||
2321926636,
|
||
335633487,
|
||
1661365465,
|
||
4195302755,
|
||
2366115317,
|
||
997073096,
|
||
1281953886,
|
||
3579855332,
|
||
2724688242,
|
||
1006888145,
|
||
1258607687,
|
||
3524101629,
|
||
2768942443,
|
||
901097722,
|
||
1119000684,
|
||
3686517206,
|
||
2898065728,
|
||
853044451,
|
||
1172266101,
|
||
3705015759,
|
||
2882616665,
|
||
651767980,
|
||
1373503546,
|
||
3369554304,
|
||
3218104598,
|
||
565507253,
|
||
1454621731,
|
||
3485111705,
|
||
3099436303,
|
||
671266974,
|
||
1594198024,
|
||
3322730930,
|
||
2970347812,
|
||
795835527,
|
||
1483230225,
|
||
3244367275,
|
||
3060149565,
|
||
1994146192,
|
||
31158534,
|
||
2563907772,
|
||
4023717930,
|
||
1907459465,
|
||
112637215,
|
||
2680153253,
|
||
3904427059,
|
||
2013776290,
|
||
251722036,
|
||
2517215374,
|
||
3775830040,
|
||
2137656763,
|
||
141376813,
|
||
2439277719,
|
||
3865271297,
|
||
1802195444,
|
||
476864866,
|
||
2238001368,
|
||
4066508878,
|
||
1812370925,
|
||
453092731,
|
||
2181625025,
|
||
4111451223,
|
||
1706088902,
|
||
314042704,
|
||
2344532202,
|
||
4240017532,
|
||
1658658271,
|
||
366619977,
|
||
2362670323,
|
||
4224994405,
|
||
1303535960,
|
||
984961486,
|
||
2747007092,
|
||
3569037538,
|
||
1256170817,
|
||
1037604311,
|
||
2765210733,
|
||
3554079995,
|
||
1131014506,
|
||
879679996,
|
||
2909243462,
|
||
3663771856,
|
||
1141124467,
|
||
855842277,
|
||
2852801631,
|
||
3708648649,
|
||
1342533948,
|
||
654459306,
|
||
3188396048,
|
||
3373015174,
|
||
1466479909,
|
||
544179635,
|
||
3110523913,
|
||
3462522015,
|
||
1591671054,
|
||
702138776,
|
||
2966460450,
|
||
3352799412,
|
||
1504918807,
|
||
783551873,
|
||
3082640443,
|
||
3233442989,
|
||
3988292384,
|
||
2596254646,
|
||
62317068,
|
||
1957810842,
|
||
3939845945,
|
||
2647816111,
|
||
81470997,
|
||
1943803523,
|
||
3814918930,
|
||
2489596804,
|
||
225274430,
|
||
2053790376,
|
||
3826175755,
|
||
2466906013,
|
||
167816743,
|
||
2097651377,
|
||
4027552580,
|
||
2265490386,
|
||
503444072,
|
||
1762050814,
|
||
4150417245,
|
||
2154129355,
|
||
426522225,
|
||
1852507879,
|
||
4275313526,
|
||
2312317920,
|
||
282753626,
|
||
1742555852,
|
||
4189708143,
|
||
2394877945,
|
||
397917763,
|
||
1622183637,
|
||
3604390888,
|
||
2714866558,
|
||
953729732,
|
||
1340076626,
|
||
3518719985,
|
||
2797360999,
|
||
1068828381,
|
||
1219638859,
|
||
3624741850,
|
||
2936675148,
|
||
906185462,
|
||
1090812512,
|
||
3747672003,
|
||
2825379669,
|
||
829329135,
|
||
1181335161,
|
||
3412177804,
|
||
3160834842,
|
||
628085408,
|
||
1382605366,
|
||
3423369109,
|
||
3138078467,
|
||
570562233,
|
||
1426400815,
|
||
3317316542,
|
||
2998733608,
|
||
733239954,
|
||
1555261956,
|
||
3268935591,
|
||
3050360625,
|
||
752459403,
|
||
1541320221,
|
||
2607071920,
|
||
3965973030,
|
||
1969922972,
|
||
40735498,
|
||
2617837225,
|
||
3943577151,
|
||
1913087877,
|
||
83908371,
|
||
2512341634,
|
||
3803740692,
|
||
2075208622,
|
||
213261112,
|
||
2463272603,
|
||
3855990285,
|
||
2094854071,
|
||
198958881,
|
||
2262029012,
|
||
4057260610,
|
||
1759359992,
|
||
534414190,
|
||
2176718541,
|
||
4139329115,
|
||
1873836001,
|
||
414664567,
|
||
2282248934,
|
||
4279200368,
|
||
1711684554,
|
||
285281116,
|
||
2405801727,
|
||
4167216745,
|
||
1634467795,
|
||
376229701,
|
||
2685067896,
|
||
3608007406,
|
||
1308918612,
|
||
956543938,
|
||
2808555105,
|
||
3495958263,
|
||
1231636301,
|
||
1047427035,
|
||
2932959818,
|
||
3654703836,
|
||
1088359270,
|
||
936918e3,
|
||
2847714899,
|
||
3736837829,
|
||
1202900863,
|
||
817233897,
|
||
3183342108,
|
||
3401237130,
|
||
1404277552,
|
||
615818150,
|
||
3134207493,
|
||
3453421203,
|
||
1423857449,
|
||
601450431,
|
||
3009837614,
|
||
3294710456,
|
||
1567103746,
|
||
711928724,
|
||
3020668471,
|
||
3272380065,
|
||
1510334235,
|
||
755167117
|
||
];
|
||
var Ml = ea(Nl);
|
||
var Fl = () => Pl;
|
||
var ta = (e, t) => {
|
||
switch (e) {
|
||
case V.MD5:
|
||
return t.md5;
|
||
case V.CRC32:
|
||
return Fl();
|
||
case V.CRC32C:
|
||
return Bl;
|
||
case V.CRC64NVME:
|
||
throw new Error(`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly.
|
||
You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";].
|
||
For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);
|
||
case V.SHA1:
|
||
return t.sha1;
|
||
case V.SHA256:
|
||
return t.sha256;
|
||
default:
|
||
throw new Error(`Unsupported checksum algorithm: ${e}`);
|
||
}
|
||
};
|
||
var na = (e, t) => {
|
||
const n = new e();
|
||
return n.update(yt2(t || "")), n.digest();
|
||
};
|
||
var Ol = {
|
||
name: "flexibleChecksumsMiddleware",
|
||
step: "build",
|
||
tags: ["BODY_CHECKSUM"],
|
||
override: true
|
||
};
|
||
var Dl = (e, t) => (n, r) => async (s) => {
|
||
if (!se.isInstance(s.request) || kl("x-amz-checksum-", s.request.headers))
|
||
return n(s);
|
||
const { request: i, input: o } = s, { body: a, headers: c } = i, { base64Encoder: u, streamHasher: l } = e, { requestChecksumRequired: f, requestAlgorithmMember: p } = t, g = await e.requestChecksumCalculation(), S = p == null ? void 0 : p.name, T = p == null ? void 0 : p.httpHeader;
|
||
S && !o[S] && (g === mt.WHEN_SUPPORTED || f) && (o[S] = or, T && (c[T] = or));
|
||
const A = vl(o, {
|
||
requestChecksumRequired: f,
|
||
requestAlgorithmMember: p == null ? void 0 : p.name,
|
||
requestChecksumCalculation: g
|
||
});
|
||
let I = a, L = c;
|
||
if (A) {
|
||
switch (A) {
|
||
case V.CRC32:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_CRC32", "U");
|
||
break;
|
||
case V.CRC32C:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_CRC32C", "V");
|
||
break;
|
||
case V.CRC64NVME:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W");
|
||
break;
|
||
case V.SHA1:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X");
|
||
break;
|
||
case V.SHA256:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_SHA256", "Y");
|
||
break;
|
||
}
|
||
const K = Ir(A), he = ta(A, e);
|
||
if (Xo(a)) {
|
||
const { getAwsChunkedEncodingStream: pe, bodyLengthChecker: Fe } = e;
|
||
I = pe(typeof e.requestStreamBufferSize == "number" && e.requestStreamBufferSize >= 8 * 1024 ? Gc(a, e.requestStreamBufferSize, r.logger) : a, {
|
||
base64Encoder: u,
|
||
bodyLengthChecker: Fe,
|
||
checksumLocationName: K,
|
||
checksumAlgorithmFn: he,
|
||
streamHasher: l
|
||
}), L = {
|
||
...c,
|
||
"content-encoding": c["content-encoding"] ? `${c["content-encoding"]},aws-chunked` : "aws-chunked",
|
||
"transfer-encoding": "chunked",
|
||
"x-amz-decoded-content-length": c["content-length"],
|
||
"x-amz-content-sha256": "STREAMING-UNSIGNED-PAYLOAD-TRAILER",
|
||
"x-amz-trailer": K
|
||
}, delete L["content-length"];
|
||
} else if (!Rl(K, c)) {
|
||
const pe = await na(he, a);
|
||
L = {
|
||
...c,
|
||
[K]: u(pe)
|
||
};
|
||
}
|
||
}
|
||
return await n({
|
||
...s,
|
||
request: {
|
||
...i,
|
||
headers: L,
|
||
body: I
|
||
}
|
||
});
|
||
};
|
||
var Ul = {
|
||
name: "flexibleChecksumsInputMiddleware",
|
||
toMiddleware: "serializerMiddleware",
|
||
relation: "before",
|
||
tags: ["BODY_CHECKSUM"],
|
||
override: true
|
||
};
|
||
var $l = (e, t) => (n, r) => async (s) => {
|
||
const i = s.input, { requestValidationModeMember: o } = t, a = await e.requestChecksumCalculation(), c = await e.responseChecksumValidation();
|
||
switch (a) {
|
||
case mt.WHEN_REQUIRED:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED", "a");
|
||
break;
|
||
case mt.WHEN_SUPPORTED:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED", "Z");
|
||
break;
|
||
}
|
||
switch (c) {
|
||
case bn.WHEN_REQUIRED:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED", "c");
|
||
break;
|
||
case bn.WHEN_SUPPORTED:
|
||
ne(r, "FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED", "b");
|
||
break;
|
||
}
|
||
return o && !i[o] && c === bn.WHEN_SUPPORTED && (i[o] = "ENABLED"), n(s);
|
||
};
|
||
var ra = (e = []) => {
|
||
const t = [];
|
||
for (const n of Cl)
|
||
!e.includes(n) || !pr.includes(n) || t.push(n);
|
||
return t;
|
||
};
|
||
var Ll = (e) => {
|
||
const t = e.lastIndexOf("-");
|
||
if (t !== -1) {
|
||
const n = e.slice(t + 1);
|
||
if (!n.startsWith("0")) {
|
||
const r = parseInt(n, 10);
|
||
if (!isNaN(r) && r >= 1 && r <= 1e4)
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
};
|
||
var Hl = async (e, { checksumAlgorithmFn: t, base64Encoder: n }) => n(await na(t, e));
|
||
var zl = async (e, { config: t, responseAlgorithms: n, logger: r }) => {
|
||
const s = ra(n), { body: i, headers: o } = e;
|
||
for (const a of s) {
|
||
const c = Ir(a), u = o[c];
|
||
if (u) {
|
||
let l;
|
||
try {
|
||
l = ta(a, t);
|
||
} catch (g) {
|
||
if (a === V.CRC64NVME) {
|
||
r == null || r.warn(`Skipping ${V.CRC64NVME} checksum validation: ${g.message}`);
|
||
continue;
|
||
}
|
||
throw g;
|
||
}
|
||
const { base64Encoder: f } = t;
|
||
if (Xo(i)) {
|
||
e.body = Vc({
|
||
expectedChecksum: u,
|
||
checksumSourceLocation: c,
|
||
checksum: new l(),
|
||
source: i,
|
||
base64Encoder: f
|
||
});
|
||
return;
|
||
}
|
||
const p = await Hl(i, { checksumAlgorithmFn: l, base64Encoder: f });
|
||
if (p === u)
|
||
break;
|
||
throw new Error(`Checksum mismatch: expected "${p}" but received "${u}" in response header "${c}".`);
|
||
}
|
||
}
|
||
};
|
||
var jl = {
|
||
name: "flexibleChecksumsResponseMiddleware",
|
||
toMiddleware: "deserializerMiddleware",
|
||
relation: "after",
|
||
tags: ["BODY_CHECKSUM"],
|
||
override: true
|
||
};
|
||
var ql = (e, t) => (n, r) => async (s) => {
|
||
if (!se.isInstance(s.request))
|
||
return n(s);
|
||
const i = s.input, o = await n(s), a = o.response, { requestValidationModeMember: c, responseAlgorithms: u } = t;
|
||
if (c && i[c] === "ENABLED") {
|
||
const { clientName: l, commandName: f } = r;
|
||
if (l === "S3Client" && f === "GetObjectCommand" && ra(u).every((g) => {
|
||
const S = Ir(g), T = a.headers[S];
|
||
return !T || Ll(T);
|
||
}))
|
||
return o;
|
||
await zl(a, {
|
||
config: e,
|
||
responseAlgorithms: u,
|
||
logger: r.logger
|
||
});
|
||
}
|
||
return o;
|
||
};
|
||
var Vl = (e, t) => ({
|
||
applyToStack: (n) => {
|
||
n.add(Dl(e, t), Ol), n.addRelativeTo($l(e, t), Ul), n.addRelativeTo(ql(e, t), jl);
|
||
}
|
||
});
|
||
var Wl = (e) => {
|
||
const { requestChecksumCalculation: t, responseChecksumValidation: n, requestStreamBufferSize: r } = e;
|
||
return Object.assign(e, {
|
||
requestChecksumCalculation: Ne(t ?? Ac),
|
||
responseChecksumValidation: Ne(n ?? Cc),
|
||
requestStreamBufferSize: Number(r ?? 0)
|
||
});
|
||
};
|
||
var Kl = (e) => (t) => async (n) => {
|
||
if (!se.isInstance(n.request))
|
||
return t(n);
|
||
const { request: r } = n, { handlerProtocol: s = "" } = e.requestHandler.metadata || {};
|
||
if (s.indexOf("h2") >= 0 && !r.headers[":authority"])
|
||
delete r.headers.host, r.headers[":authority"] = r.hostname + (r.port ? ":" + r.port : "");
|
||
else if (!r.headers.host) {
|
||
let i = r.hostname;
|
||
r.port != null && (i += `:${r.port}`), r.headers.host = i;
|
||
}
|
||
return t(n);
|
||
};
|
||
var Gl = {
|
||
name: "hostHeaderMiddleware",
|
||
step: "build",
|
||
priority: "low",
|
||
tags: ["HOST"],
|
||
override: true
|
||
};
|
||
var Zl = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Kl(e), Gl);
|
||
}
|
||
});
|
||
var Xl = () => (e, t) => async (n) => {
|
||
var r, s;
|
||
try {
|
||
const i = await e(n), { clientName: o, commandName: a, logger: c, dynamoDbDocumentClientOptions: u = {} } = t, { overrideInputFilterSensitiveLog: l, overrideOutputFilterSensitiveLog: f } = u, p = l ?? t.inputFilterSensitiveLog, g = f ?? t.outputFilterSensitiveLog, { $metadata: S, ...T } = i.output;
|
||
return (r = c == null ? void 0 : c.info) == null || r.call(c, {
|
||
clientName: o,
|
||
commandName: a,
|
||
input: p(n.input),
|
||
output: g(T),
|
||
metadata: S
|
||
}), i;
|
||
} catch (i) {
|
||
const { clientName: o, commandName: a, logger: c, dynamoDbDocumentClientOptions: u = {} } = t, { overrideInputFilterSensitiveLog: l } = u, f = l ?? t.inputFilterSensitiveLog;
|
||
throw (s = c == null ? void 0 : c.error) == null || s.call(c, {
|
||
clientName: o,
|
||
commandName: a,
|
||
input: f(n.input),
|
||
error: i,
|
||
metadata: i.$metadata
|
||
}), i;
|
||
}
|
||
};
|
||
var Ql = {
|
||
name: "loggerMiddleware",
|
||
tags: ["LOGGER"],
|
||
step: "initialize",
|
||
override: true
|
||
};
|
||
var Yl = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Xl(), Ql);
|
||
}
|
||
});
|
||
var Tn = "X-Amzn-Trace-Id";
|
||
var Jl = "AWS_LAMBDA_FUNCTION_NAME";
|
||
var ef = "_X_AMZN_TRACE_ID";
|
||
var tf = (e) => (t) => async (n) => {
|
||
const { request: r } = n;
|
||
if (!se.isInstance(r) || e.runtime !== "node")
|
||
return t(n);
|
||
const s = Object.keys(r.headers ?? {}).find((c) => c.toLowerCase() === Tn.toLowerCase()) ?? Tn;
|
||
if (r.headers.hasOwnProperty(s))
|
||
return t(n);
|
||
const i = process.env[Jl], o = process.env[ef], a = (c) => typeof c == "string" && c.length > 0;
|
||
return a(i) && a(o) && (r.headers[Tn] = o), t({
|
||
...n,
|
||
request: r
|
||
});
|
||
};
|
||
var nf = {
|
||
step: "build",
|
||
tags: ["RECURSION_DETECTION"],
|
||
name: "recursionDetectionMiddleware",
|
||
override: true,
|
||
priority: "low"
|
||
};
|
||
var rf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(tf(e), nf);
|
||
}
|
||
});
|
||
var sf = "content-length";
|
||
var of = "x-amz-decoded-content-length";
|
||
function af() {
|
||
return (e, t) => async (n) => {
|
||
var s;
|
||
const { request: r } = n;
|
||
if (se.isInstance(r) && !(sf in r.headers) && !(of in r.headers)) {
|
||
const i = "Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";
|
||
typeof ((s = t == null ? void 0 : t.logger) == null ? void 0 : s.warn) == "function" && !(t.logger instanceof kr) && t.logger.warn(i);
|
||
}
|
||
return e({ ...n });
|
||
};
|
||
}
|
||
var cf = {
|
||
step: "finalizeRequest",
|
||
tags: ["CHECK_CONTENT_LENGTH_HEADER"],
|
||
name: "getCheckContentLengthHeaderPlugin",
|
||
override: true
|
||
};
|
||
var uf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(af(), cf);
|
||
}
|
||
});
|
||
var df = (e) => (t, n) => async (r) => {
|
||
const s = await e.region(), i = e.region;
|
||
let o = () => {
|
||
};
|
||
n.__s3RegionRedirect && (Object.defineProperty(e, "region", {
|
||
writable: false,
|
||
value: async () => n.__s3RegionRedirect
|
||
}), o = () => Object.defineProperty(e, "region", {
|
||
writable: true,
|
||
value: i
|
||
}));
|
||
try {
|
||
const a = await t(r);
|
||
if (n.__s3RegionRedirect) {
|
||
o();
|
||
const c = await e.region();
|
||
if (s !== c)
|
||
throw new Error("Region was not restored following S3 region redirect.");
|
||
}
|
||
return a;
|
||
} catch (a) {
|
||
throw o(), a;
|
||
}
|
||
};
|
||
var lf = {
|
||
tags: ["REGION_REDIRECT", "S3"],
|
||
name: "regionRedirectEndpointMiddleware",
|
||
override: true,
|
||
relation: "before",
|
||
toMiddleware: "endpointV2Middleware"
|
||
};
|
||
function ff(e) {
|
||
return (t, n) => async (r) => {
|
||
var s, i, o;
|
||
try {
|
||
return await t(r);
|
||
} catch (a) {
|
||
if (e.followRegionRedirects && (((s = a == null ? void 0 : a.$metadata) == null ? void 0 : s.httpStatusCode) === 301 || ((i = a == null ? void 0 : a.$metadata) == null ? void 0 : i.httpStatusCode) === 400 && (a == null ? void 0 : a.name) === "IllegalLocationConstraintException")) {
|
||
try {
|
||
const c = a.$response.headers["x-amz-bucket-region"];
|
||
(o = n.logger) == null || o.debug(`Redirecting from ${await e.region()} to ${c}`), n.__s3RegionRedirect = c;
|
||
} catch (c) {
|
||
throw new Error("Region redirect failed: " + c);
|
||
}
|
||
return t(r);
|
||
}
|
||
throw a;
|
||
}
|
||
};
|
||
}
|
||
var hf = {
|
||
step: "initialize",
|
||
tags: ["REGION_REDIRECT", "S3"],
|
||
name: "regionRedirectMiddleware",
|
||
override: true
|
||
};
|
||
var pf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(ff(e), hf), t.addRelativeTo(df(e), lf);
|
||
}
|
||
});
|
||
var on = class on2 {
|
||
constructor(t = {}) {
|
||
_(this, "data");
|
||
_(this, "lastPurgeTime", Date.now());
|
||
this.data = t;
|
||
}
|
||
get(t) {
|
||
const n = this.data[t];
|
||
if (n)
|
||
return n;
|
||
}
|
||
set(t, n) {
|
||
return this.data[t] = n, n;
|
||
}
|
||
delete(t) {
|
||
delete this.data[t];
|
||
}
|
||
async purgeExpired() {
|
||
const t = Date.now();
|
||
if (!(this.lastPurgeTime + on2.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > t))
|
||
for (const n in this.data) {
|
||
const r = this.data[n];
|
||
if (!r.isRefreshing) {
|
||
const s = await r.identity;
|
||
s.expiration && s.expiration.getTime() < t && delete this.data[n];
|
||
}
|
||
}
|
||
}
|
||
};
|
||
_(on, "EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS", 3e4);
|
||
var gr = on;
|
||
var Bn = class {
|
||
constructor(t, n = false, r = Date.now()) {
|
||
_(this, "_identity");
|
||
_(this, "isRefreshing");
|
||
_(this, "accessed");
|
||
this._identity = t, this.isRefreshing = n, this.accessed = r;
|
||
}
|
||
get identity() {
|
||
return this.accessed = Date.now(), this._identity;
|
||
}
|
||
};
|
||
var an = class an2 {
|
||
constructor(t, n = new gr()) {
|
||
_(this, "createSessionFn");
|
||
_(this, "cache");
|
||
this.createSessionFn = t, this.cache = n;
|
||
}
|
||
async getS3ExpressIdentity(t, n) {
|
||
const r = n.Bucket, { cache: s } = this, i = s.get(r);
|
||
return i ? i.identity.then((o) => {
|
||
var u, l;
|
||
return (((u = o.expiration) == null ? void 0 : u.getTime()) ?? 0) < Date.now() ? s.set(r, new Bn(this.getIdentity(r))).identity : ((((l = o.expiration) == null ? void 0 : l.getTime()) ?? 0) < Date.now() + an2.REFRESH_WINDOW_MS && !i.isRefreshing && (i.isRefreshing = true, this.getIdentity(r).then((f) => {
|
||
s.set(r, new Bn(Promise.resolve(f)));
|
||
})), o);
|
||
}) : s.set(r, new Bn(this.getIdentity(r))).identity;
|
||
}
|
||
async getIdentity(t) {
|
||
var s, i;
|
||
await this.cache.purgeExpired().catch((o) => {
|
||
});
|
||
const n = await this.createSessionFn(t);
|
||
if (!((s = n.Credentials) != null && s.AccessKeyId) || !((i = n.Credentials) != null && i.SecretAccessKey))
|
||
throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");
|
||
return {
|
||
accessKeyId: n.Credentials.AccessKeyId,
|
||
secretAccessKey: n.Credentials.SecretAccessKey,
|
||
sessionToken: n.Credentials.SessionToken,
|
||
expiration: n.Credentials.Expiration ? new Date(n.Credentials.Expiration) : void 0
|
||
};
|
||
}
|
||
};
|
||
_(an, "REFRESH_WINDOW_MS", 6e4);
|
||
var mr = an;
|
||
var Ns;
|
||
(function(e) {
|
||
e.ENV = "env", e.CONFIG = "shared config entry";
|
||
})(Ns || (Ns = {}));
|
||
var gf = "Directory";
|
||
var mf = "S3Express";
|
||
var yf = "sigv4-s3express";
|
||
var yr = "X-Amz-S3session-Token";
|
||
var wr = yr.toLowerCase();
|
||
var wf = class extends lr {
|
||
async signWithCredentials(t, n, r) {
|
||
const s = Ms(n);
|
||
t.headers[wr] = n.sessionToken;
|
||
const i = this;
|
||
return Fs(i, s), i.signRequest(t, r ?? {});
|
||
}
|
||
async presignWithCredentials(t, n, r) {
|
||
const s = Ms(n);
|
||
return delete t.headers[wr], t.headers[yr] = n.sessionToken, t.query = t.query ?? {}, t.query[yr] = n.sessionToken, Fs(this, s), this.presign(t, r);
|
||
}
|
||
};
|
||
function Ms(e) {
|
||
return {
|
||
accessKeyId: e.accessKeyId,
|
||
secretAccessKey: e.secretAccessKey,
|
||
expiration: e.expiration
|
||
};
|
||
}
|
||
function Fs(e, t) {
|
||
const n = setTimeout(() => {
|
||
throw new Error("SignatureV4S3Express credential override was created but not called.");
|
||
}, 10), r = e.credentialProvider, s = () => (clearTimeout(n), e.credentialProvider = r, Promise.resolve(t));
|
||
e.credentialProvider = s;
|
||
}
|
||
var bf = (e) => (t, n) => async (r) => {
|
||
var s, i, o, a, c;
|
||
if (n.endpointV2) {
|
||
const u = n.endpointV2, l = ((o = (i = (s = u.properties) == null ? void 0 : s.authSchemes) == null ? void 0 : i[0]) == null ? void 0 : o.name) === yf;
|
||
if ((((a = u.properties) == null ? void 0 : a.backend) === mf || ((c = u.properties) == null ? void 0 : c.bucketType) === gf) && (ne(n, "S3_EXPRESS_BUCKET", "J"), n.isS3ExpressBucket = true), l) {
|
||
const p = r.input.Bucket;
|
||
if (p) {
|
||
const g = await e.s3ExpressIdentityProvider.getS3ExpressIdentity(await e.credentials(), {
|
||
Bucket: p
|
||
});
|
||
n.s3ExpressIdentity = g, se.isInstance(r.request) && g.sessionToken && (r.request.headers[wr] = g.sessionToken);
|
||
}
|
||
}
|
||
}
|
||
return t(r);
|
||
};
|
||
var Ef = {
|
||
name: "s3ExpressMiddleware",
|
||
step: "build",
|
||
tags: ["S3", "S3_EXPRESS"],
|
||
override: true
|
||
};
|
||
var xf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(bf(e), Ef);
|
||
}
|
||
});
|
||
var Sf = async (e, t, n, r) => {
|
||
const s = await r.signWithCredentials(n, e, {});
|
||
if (s.headers["X-Amz-Security-Token"] || s.headers["x-amz-security-token"])
|
||
throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");
|
||
return s;
|
||
};
|
||
var Af = (e) => (t) => {
|
||
throw t;
|
||
};
|
||
var Cf = (e, t) => {
|
||
};
|
||
var vf = (e) => (t, n) => async (r) => {
|
||
if (!se.isInstance(r.request))
|
||
return t(r);
|
||
const i = St(n).selectedHttpAuthScheme;
|
||
if (!i)
|
||
throw new Error("No HttpAuthScheme was selected: unable to sign request");
|
||
const { httpAuthOption: { signingProperties: o = {} }, identity: a, signer: c } = i;
|
||
let u;
|
||
n.s3ExpressIdentity ? u = await Sf(n.s3ExpressIdentity, o, r.request, await e.signer()) : u = await c.sign(r.request, a, o);
|
||
const l = await t({
|
||
...r,
|
||
request: u
|
||
}).catch((c.errorHandler || Af)(o));
|
||
return (c.successHandler || Cf)(l.response, o), l;
|
||
};
|
||
var Rf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.addRelativeTo(vf(e), Ao);
|
||
}
|
||
});
|
||
var kf = (e, { session: t }) => {
|
||
const [n, r] = t, { forcePathStyle: s, useAccelerateEndpoint: i, disableMultiregionAccessPoints: o, followRegionRedirects: a, s3ExpressIdentityProvider: c, bucketEndpoint: u } = e;
|
||
return Object.assign(e, {
|
||
forcePathStyle: s ?? false,
|
||
useAccelerateEndpoint: i ?? false,
|
||
disableMultiregionAccessPoints: o ?? false,
|
||
followRegionRedirects: a ?? false,
|
||
s3ExpressIdentityProvider: c ?? new mr(async (l) => n().send(new r({
|
||
Bucket: l
|
||
}))),
|
||
bucketEndpoint: u ?? false
|
||
});
|
||
};
|
||
var Tf = {
|
||
CopyObjectCommand: true,
|
||
UploadPartCopyCommand: true,
|
||
CompleteMultipartUploadCommand: true
|
||
};
|
||
var Bf = 3e3;
|
||
var If = (e) => (t, n) => async (r) => {
|
||
const s = await t(r), { response: i } = s;
|
||
if (!gt2.isInstance(i))
|
||
return s;
|
||
const { statusCode: o, body: a } = i;
|
||
if (o < 200 || o >= 300 || !(typeof (a == null ? void 0 : a.stream) == "function" || typeof (a == null ? void 0 : a.pipe) == "function" || typeof (a == null ? void 0 : a.tee) == "function"))
|
||
return s;
|
||
let u = a, l = a;
|
||
a && typeof a == "object" && !(a instanceof Uint8Array) && ([u, l] = await ou(a)), i.body = l;
|
||
const f = await _f(u, {
|
||
streamCollector: async (g) => Yc(g, Bf)
|
||
});
|
||
typeof (u == null ? void 0 : u.destroy) == "function" && u.destroy();
|
||
const p = e.utf8Encoder(f.subarray(f.length - 16));
|
||
if (f.length === 0 && Tf[n.commandName]) {
|
||
const g = new Error("S3 aborted request");
|
||
throw g.name = "InternalError", g;
|
||
}
|
||
return p && p.endsWith("</Error>") && (i.statusCode = 400), s;
|
||
};
|
||
var _f = (e = new Uint8Array(), t) => e instanceof Uint8Array ? Promise.resolve(e) : t.streamCollector(e) || Promise.resolve(new Uint8Array());
|
||
var Pf = {
|
||
relation: "after",
|
||
toMiddleware: "deserializerMiddleware",
|
||
tags: ["THROW_200_EXCEPTIONS", "S3"],
|
||
name: "throw200ExceptionsMiddleware",
|
||
override: true
|
||
};
|
||
var sa = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.addRelativeTo(If(e), Pf);
|
||
}
|
||
});
|
||
var Nf = (e) => typeof e == "string" && e.indexOf("arn:") === 0 && e.split(":").length >= 6;
|
||
function Mf(e) {
|
||
return (t, n) => async (r) => {
|
||
var s, i, o, a;
|
||
if (e.bucketEndpoint) {
|
||
const c = n.endpointV2;
|
||
if (c) {
|
||
const u = r.input.Bucket;
|
||
if (typeof u == "string")
|
||
try {
|
||
const l = new URL(u);
|
||
n.endpointV2 = {
|
||
...c,
|
||
url: l
|
||
};
|
||
} catch (l) {
|
||
const f = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${u} could not be parsed as URL.`;
|
||
throw ((i = (s = n.logger) == null ? void 0 : s.constructor) == null ? void 0 : i.name) === "NoOpLogger" || (a = (o = n.logger) == null ? void 0 : o.warn) == null || a.call(o, f), l;
|
||
}
|
||
}
|
||
}
|
||
return t(r);
|
||
};
|
||
}
|
||
var Ff = {
|
||
name: "bucketEndpointMiddleware",
|
||
override: true,
|
||
relation: "after",
|
||
toMiddleware: "endpointV2Middleware"
|
||
};
|
||
function Of({ bucketEndpoint: e }) {
|
||
return (t) => async (n) => {
|
||
const { input: { Bucket: r } } = n;
|
||
if (!e && typeof r == "string" && !Nf(r) && r.indexOf("/") >= 0) {
|
||
const s = new Error(`Bucket name shouldn't contain '/', received '${r}'`);
|
||
throw s.name = "InvalidBucketName", s;
|
||
}
|
||
return t({ ...n });
|
||
};
|
||
}
|
||
var Df = {
|
||
step: "initialize",
|
||
tags: ["VALIDATE_BUCKET_NAME"],
|
||
name: "validateBucketNameMiddleware",
|
||
override: true
|
||
};
|
||
var Uf = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Of(e), Df), t.addRelativeTo(Mf(e), Ff);
|
||
}
|
||
});
|
||
var $f = void 0;
|
||
function Lf(e) {
|
||
return e === void 0 ? true : typeof e == "string" && e.length <= 50;
|
||
}
|
||
function Hf(e) {
|
||
const t = ht(e.userAgentAppId ?? $f), { customUserAgent: n } = e;
|
||
return Object.assign(e, {
|
||
customUserAgent: typeof n == "string" ? [[n]] : n,
|
||
userAgentAppId: async () => {
|
||
var s, i;
|
||
const r = await t();
|
||
if (!Lf(r)) {
|
||
const o = ((i = (s = e.logger) == null ? void 0 : s.constructor) == null ? void 0 : i.name) === "NoOpLogger" || !e.logger ? console : e.logger;
|
||
typeof r != "string" ? o == null || o.warn("userAgentAppId must be a string or undefined.") : r.length > 50 && (o == null || o.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."));
|
||
}
|
||
return r;
|
||
}
|
||
});
|
||
}
|
||
var zf = class {
|
||
constructor({ size: t, params: n }) {
|
||
this.data = /* @__PURE__ */ new Map(), this.parameters = [], this.capacity = t ?? 50, n && (this.parameters = n);
|
||
}
|
||
get(t, n) {
|
||
const r = this.hash(t);
|
||
if (r === false)
|
||
return n();
|
||
if (!this.data.has(r)) {
|
||
if (this.data.size > this.capacity + 10) {
|
||
const s = this.data.keys();
|
||
let i = 0;
|
||
for (; ; ) {
|
||
const { value: o, done: a } = s.next();
|
||
if (this.data.delete(o), a || ++i > 10)
|
||
break;
|
||
}
|
||
}
|
||
this.data.set(r, n());
|
||
}
|
||
return this.data.get(r);
|
||
}
|
||
size() {
|
||
return this.data.size;
|
||
}
|
||
hash(t) {
|
||
let n = "";
|
||
const { parameters: r } = this;
|
||
if (r.length === 0)
|
||
return false;
|
||
for (const s of r) {
|
||
const i = String(t[s] ?? "");
|
||
if (i.includes("|;"))
|
||
return false;
|
||
n += i + "|;";
|
||
}
|
||
return n;
|
||
}
|
||
};
|
||
var jf = new RegExp("^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$");
|
||
var ia = (e) => jf.test(e) || e.startsWith("[") && e.endsWith("]");
|
||
var qf = new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$");
|
||
var Nr = (e, t = false) => {
|
||
if (!t)
|
||
return qf.test(e);
|
||
const n = e.split(".");
|
||
for (const r of n)
|
||
if (!Nr(r))
|
||
return false;
|
||
return true;
|
||
};
|
||
var Jt = {};
|
||
var Ot = "endpoints";
|
||
function Xe(e) {
|
||
return typeof e != "object" || e == null ? e : "ref" in e ? `$${Xe(e.ref)}` : "fn" in e ? `${e.fn}(${(e.argv || []).map(Xe).join(", ")})` : JSON.stringify(e, null, 2);
|
||
}
|
||
var Be = class extends Error {
|
||
constructor(t) {
|
||
super(t), this.name = "EndpointError";
|
||
}
|
||
};
|
||
var Vf = (e, t) => e === t;
|
||
var Wf = (e) => {
|
||
const t = e.split("."), n = [];
|
||
for (const r of t) {
|
||
const s = r.indexOf("[");
|
||
if (s !== -1) {
|
||
if (r.indexOf("]") !== r.length - 1)
|
||
throw new Be(`Path: '${e}' does not end with ']'`);
|
||
const i = r.slice(s + 1, -1);
|
||
if (Number.isNaN(parseInt(i)))
|
||
throw new Be(`Invalid array index: '${i}' in path: '${e}'`);
|
||
s !== 0 && n.push(r.slice(0, s)), n.push(i);
|
||
} else
|
||
n.push(r);
|
||
}
|
||
return n;
|
||
};
|
||
var oa = (e, t) => Wf(t).reduce((n, r) => {
|
||
if (typeof n != "object")
|
||
throw new Be(`Index '${r}' in '${t}' not found in '${JSON.stringify(e)}'`);
|
||
return Array.isArray(n) ? n[parseInt(r)] : n[r];
|
||
}, e);
|
||
var Kf = (e) => e != null;
|
||
var Gf = (e) => !e;
|
||
var In = {
|
||
[Mt.HTTP]: 80,
|
||
[Mt.HTTPS]: 443
|
||
};
|
||
var Zf = (e) => {
|
||
const t = (() => {
|
||
try {
|
||
if (e instanceof URL)
|
||
return e;
|
||
if (typeof e == "object" && "hostname" in e) {
|
||
const { hostname: p, port: g, protocol: S = "", path: T = "", query: A = {} } = e, I = new URL(`${S}//${p}${g ? `:${g}` : ""}${T}`);
|
||
return I.search = Object.entries(A).map(([L, H]) => `${L}=${H}`).join("&"), I;
|
||
}
|
||
return new URL(e);
|
||
} catch {
|
||
return null;
|
||
}
|
||
})();
|
||
if (!t)
|
||
return null;
|
||
const n = t.href, { host: r, hostname: s, pathname: i, protocol: o, search: a } = t;
|
||
if (a)
|
||
return null;
|
||
const c = o.slice(0, -1);
|
||
if (!Object.values(Mt).includes(c))
|
||
return null;
|
||
const u = ia(s), l = n.includes(`${r}:${In[c]}`) || typeof e == "string" && e.includes(`${r}:${In[c]}`), f = `${r}${l ? `:${In[c]}` : ""}`;
|
||
return {
|
||
scheme: c,
|
||
authority: f,
|
||
path: i,
|
||
normalizedPath: i.endsWith("/") ? i : `${i}/`,
|
||
isIp: u
|
||
};
|
||
};
|
||
var Xf = (e, t) => e === t;
|
||
var Qf = (e, t, n, r) => t >= n || e.length < n ? null : r ? e.substring(e.length - n, e.length - t) : e.substring(t, n);
|
||
var Yf = (e) => encodeURIComponent(e).replace(/[!*'()]/g, (t) => `%${t.charCodeAt(0).toString(16).toUpperCase()}`);
|
||
var Jf = {
|
||
booleanEquals: Vf,
|
||
getAttr: oa,
|
||
isSet: Kf,
|
||
isValidHostLabel: Nr,
|
||
not: Gf,
|
||
parseURL: Zf,
|
||
stringEquals: Xf,
|
||
substring: Qf,
|
||
uriEncode: Yf
|
||
};
|
||
var aa = (e, t) => {
|
||
const n = [], r = {
|
||
...t.endpointParams,
|
||
...t.referenceRecord
|
||
};
|
||
let s = 0;
|
||
for (; s < e.length; ) {
|
||
const i = e.indexOf("{", s);
|
||
if (i === -1) {
|
||
n.push(e.slice(s));
|
||
break;
|
||
}
|
||
n.push(e.slice(s, i));
|
||
const o = e.indexOf("}", i);
|
||
if (o === -1) {
|
||
n.push(e.slice(i));
|
||
break;
|
||
}
|
||
e[i + 1] === "{" && e[o + 1] === "}" && (n.push(e.slice(i + 1, o)), s = o + 2);
|
||
const a = e.substring(i + 1, o);
|
||
if (a.includes("#")) {
|
||
const [c, u] = a.split("#");
|
||
n.push(oa(r[c], u));
|
||
} else
|
||
n.push(r[a]);
|
||
s = o + 1;
|
||
}
|
||
return n.join("");
|
||
};
|
||
var eh = ({ ref: e }, t) => ({
|
||
...t.endpointParams,
|
||
...t.referenceRecord
|
||
})[e];
|
||
var dn = (e, t, n) => {
|
||
if (typeof e == "string")
|
||
return aa(e, n);
|
||
if (e.fn)
|
||
return ca(e, n);
|
||
if (e.ref)
|
||
return eh(e, n);
|
||
throw new Be(`'${t}': ${String(e)} is not a string, function or reference.`);
|
||
};
|
||
var ca = ({ fn: e, argv: t }, n) => {
|
||
const r = t.map((i) => ["boolean", "number"].includes(typeof i) ? i : dn(i, "arg", n)), s = e.split(".");
|
||
return s[0] in Jt && s[1] != null ? Jt[s[0]][s[1]](...r) : Jf[e](...r);
|
||
};
|
||
var th = ({ assign: e, ...t }, n) => {
|
||
var s, i;
|
||
if (e && e in n.referenceRecord)
|
||
throw new Be(`'${e}' is already defined in Reference Record.`);
|
||
const r = ca(t, n);
|
||
return (i = (s = n.logger) == null ? void 0 : s.debug) == null || i.call(s, `${Ot} evaluateCondition: ${Xe(t)} = ${Xe(r)}`), {
|
||
result: r === "" ? true : !!r,
|
||
...e != null && { toAssign: { name: e, value: r } }
|
||
};
|
||
};
|
||
var Mr = (e = [], t) => {
|
||
var r, s;
|
||
const n = {};
|
||
for (const i of e) {
|
||
const { result: o, toAssign: a } = th(i, {
|
||
...t,
|
||
referenceRecord: {
|
||
...t.referenceRecord,
|
||
...n
|
||
}
|
||
});
|
||
if (!o)
|
||
return { result: o };
|
||
a && (n[a.name] = a.value, (s = (r = t.logger) == null ? void 0 : r.debug) == null || s.call(r, `${Ot} assign: ${a.name} := ${Xe(a.value)}`));
|
||
}
|
||
return { result: true, referenceRecord: n };
|
||
};
|
||
var nh = (e, t) => Object.entries(e).reduce((n, [r, s]) => ({
|
||
...n,
|
||
[r]: s.map((i) => {
|
||
const o = dn(i, "Header value entry", t);
|
||
if (typeof o != "string")
|
||
throw new Be(`Header '${r}' value '${o}' is not a string`);
|
||
return o;
|
||
})
|
||
}), {});
|
||
var ua = (e, t) => {
|
||
if (Array.isArray(e))
|
||
return e.map((n) => ua(n, t));
|
||
switch (typeof e) {
|
||
case "string":
|
||
return aa(e, t);
|
||
case "object":
|
||
if (e === null)
|
||
throw new Be(`Unexpected endpoint property: ${e}`);
|
||
return da(e, t);
|
||
case "boolean":
|
||
return e;
|
||
default:
|
||
throw new Be(`Unexpected endpoint property type: ${typeof e}`);
|
||
}
|
||
};
|
||
var da = (e, t) => Object.entries(e).reduce((n, [r, s]) => ({
|
||
...n,
|
||
[r]: ua(s, t)
|
||
}), {});
|
||
var rh = (e, t) => {
|
||
const n = dn(e, "Endpoint URL", t);
|
||
if (typeof n == "string")
|
||
try {
|
||
return new URL(n);
|
||
} catch (r) {
|
||
throw r;
|
||
}
|
||
throw new Be(`Endpoint URL must be a string, got ${typeof n}`);
|
||
};
|
||
var sh = (e, t) => {
|
||
var l, f;
|
||
const { conditions: n, endpoint: r } = e, { result: s, referenceRecord: i } = Mr(n, t);
|
||
if (!s)
|
||
return;
|
||
const o = {
|
||
...t,
|
||
referenceRecord: { ...t.referenceRecord, ...i }
|
||
}, { url: a, properties: c, headers: u } = r;
|
||
return (f = (l = t.logger) == null ? void 0 : l.debug) == null || f.call(l, `${Ot} Resolving endpoint from template: ${Xe(r)}`), {
|
||
...u != null && {
|
||
headers: nh(u, o)
|
||
},
|
||
...c != null && {
|
||
properties: da(c, o)
|
||
},
|
||
url: rh(a, o)
|
||
};
|
||
};
|
||
var ih = (e, t) => {
|
||
const { conditions: n, error: r } = e, { result: s, referenceRecord: i } = Mr(n, t);
|
||
if (s)
|
||
throw new Be(dn(r, "Error", {
|
||
...t,
|
||
referenceRecord: { ...t.referenceRecord, ...i }
|
||
}));
|
||
};
|
||
var oh = (e, t) => {
|
||
const { conditions: n, rules: r } = e, { result: s, referenceRecord: i } = Mr(n, t);
|
||
if (s)
|
||
return la(r, {
|
||
...t,
|
||
referenceRecord: { ...t.referenceRecord, ...i }
|
||
});
|
||
};
|
||
var la = (e, t) => {
|
||
for (const n of e)
|
||
if (n.type === "endpoint") {
|
||
const r = sh(n, t);
|
||
if (r)
|
||
return r;
|
||
} else if (n.type === "error")
|
||
ih(n, t);
|
||
else if (n.type === "tree") {
|
||
const r = oh(n, t);
|
||
if (r)
|
||
return r;
|
||
} else
|
||
throw new Be(`Unknown endpoint rule: ${n}`);
|
||
throw new Be("Rules evaluation failed");
|
||
};
|
||
var ah = (e, t) => {
|
||
var u, l, f, p;
|
||
const { endpointParams: n, logger: r } = t, { parameters: s, rules: i } = e;
|
||
(l = (u = t.logger) == null ? void 0 : u.debug) == null || l.call(u, `${Ot} Initial EndpointParams: ${Xe(n)}`);
|
||
const o = Object.entries(s).filter(([, g]) => g.default != null).map(([g, S]) => [g, S.default]);
|
||
if (o.length > 0)
|
||
for (const [g, S] of o)
|
||
n[g] = n[g] ?? S;
|
||
const a = Object.entries(s).filter(([, g]) => g.required).map(([g]) => g);
|
||
for (const g of a)
|
||
if (n[g] == null)
|
||
throw new Be(`Missing required parameter: '${g}'`);
|
||
const c = la(i, { endpointParams: n, logger: r, referenceRecord: {} });
|
||
return (p = (f = t.logger) == null ? void 0 : f.debug) == null || p.call(f, `${Ot} Resolved endpoint: ${Xe(c)}`), c;
|
||
};
|
||
var fa = (e, t = false) => {
|
||
if (t) {
|
||
for (const n of e.split("."))
|
||
if (!fa(n))
|
||
return false;
|
||
return true;
|
||
}
|
||
return !(!Nr(e) || e.length < 3 || e.length > 63 || e !== e.toLowerCase() || ia(e));
|
||
};
|
||
var Os = ":";
|
||
var ch = "/";
|
||
var uh = (e) => {
|
||
const t = e.split(Os);
|
||
if (t.length < 6)
|
||
return null;
|
||
const [n, r, s, i, o, ...a] = t;
|
||
if (n !== "arn" || r === "" || s === "" || a.join(Os) === "")
|
||
return null;
|
||
const c = a.map((u) => u.split(ch)).flat();
|
||
return {
|
||
partition: r,
|
||
service: s,
|
||
region: i,
|
||
accountId: o,
|
||
resourceId: c
|
||
};
|
||
};
|
||
var dh = [
|
||
{
|
||
id: "aws",
|
||
outputs: {
|
||
dnsSuffix: "amazonaws.com",
|
||
dualStackDnsSuffix: "api.aws",
|
||
implicitGlobalRegion: "us-east-1",
|
||
name: "aws",
|
||
supportsDualStack: true,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"af-south-1": {
|
||
description: "Africa (Cape Town)"
|
||
},
|
||
"ap-east-1": {
|
||
description: "Asia Pacific (Hong Kong)"
|
||
},
|
||
"ap-east-2": {
|
||
description: "Asia Pacific (Taipei)"
|
||
},
|
||
"ap-northeast-1": {
|
||
description: "Asia Pacific (Tokyo)"
|
||
},
|
||
"ap-northeast-2": {
|
||
description: "Asia Pacific (Seoul)"
|
||
},
|
||
"ap-northeast-3": {
|
||
description: "Asia Pacific (Osaka)"
|
||
},
|
||
"ap-south-1": {
|
||
description: "Asia Pacific (Mumbai)"
|
||
},
|
||
"ap-south-2": {
|
||
description: "Asia Pacific (Hyderabad)"
|
||
},
|
||
"ap-southeast-1": {
|
||
description: "Asia Pacific (Singapore)"
|
||
},
|
||
"ap-southeast-2": {
|
||
description: "Asia Pacific (Sydney)"
|
||
},
|
||
"ap-southeast-3": {
|
||
description: "Asia Pacific (Jakarta)"
|
||
},
|
||
"ap-southeast-4": {
|
||
description: "Asia Pacific (Melbourne)"
|
||
},
|
||
"ap-southeast-5": {
|
||
description: "Asia Pacific (Malaysia)"
|
||
},
|
||
"ap-southeast-7": {
|
||
description: "Asia Pacific (Thailand)"
|
||
},
|
||
"aws-global": {
|
||
description: "AWS Standard global region"
|
||
},
|
||
"ca-central-1": {
|
||
description: "Canada (Central)"
|
||
},
|
||
"ca-west-1": {
|
||
description: "Canada West (Calgary)"
|
||
},
|
||
"eu-central-1": {
|
||
description: "Europe (Frankfurt)"
|
||
},
|
||
"eu-central-2": {
|
||
description: "Europe (Zurich)"
|
||
},
|
||
"eu-north-1": {
|
||
description: "Europe (Stockholm)"
|
||
},
|
||
"eu-south-1": {
|
||
description: "Europe (Milan)"
|
||
},
|
||
"eu-south-2": {
|
||
description: "Europe (Spain)"
|
||
},
|
||
"eu-west-1": {
|
||
description: "Europe (Ireland)"
|
||
},
|
||
"eu-west-2": {
|
||
description: "Europe (London)"
|
||
},
|
||
"eu-west-3": {
|
||
description: "Europe (Paris)"
|
||
},
|
||
"il-central-1": {
|
||
description: "Israel (Tel Aviv)"
|
||
},
|
||
"me-central-1": {
|
||
description: "Middle East (UAE)"
|
||
},
|
||
"me-south-1": {
|
||
description: "Middle East (Bahrain)"
|
||
},
|
||
"mx-central-1": {
|
||
description: "Mexico (Central)"
|
||
},
|
||
"sa-east-1": {
|
||
description: "South America (Sao Paulo)"
|
||
},
|
||
"us-east-1": {
|
||
description: "US East (N. Virginia)"
|
||
},
|
||
"us-east-2": {
|
||
description: "US East (Ohio)"
|
||
},
|
||
"us-west-1": {
|
||
description: "US West (N. California)"
|
||
},
|
||
"us-west-2": {
|
||
description: "US West (Oregon)"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-cn",
|
||
outputs: {
|
||
dnsSuffix: "amazonaws.com.cn",
|
||
dualStackDnsSuffix: "api.amazonwebservices.com.cn",
|
||
implicitGlobalRegion: "cn-northwest-1",
|
||
name: "aws-cn",
|
||
supportsDualStack: true,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^cn\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-cn-global": {
|
||
description: "AWS China global region"
|
||
},
|
||
"cn-north-1": {
|
||
description: "China (Beijing)"
|
||
},
|
||
"cn-northwest-1": {
|
||
description: "China (Ningxia)"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-us-gov",
|
||
outputs: {
|
||
dnsSuffix: "amazonaws.com",
|
||
dualStackDnsSuffix: "api.aws",
|
||
implicitGlobalRegion: "us-gov-west-1",
|
||
name: "aws-us-gov",
|
||
supportsDualStack: true,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^us\\-gov\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-us-gov-global": {
|
||
description: "AWS GovCloud (US) global region"
|
||
},
|
||
"us-gov-east-1": {
|
||
description: "AWS GovCloud (US-East)"
|
||
},
|
||
"us-gov-west-1": {
|
||
description: "AWS GovCloud (US-West)"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-iso",
|
||
outputs: {
|
||
dnsSuffix: "c2s.ic.gov",
|
||
dualStackDnsSuffix: "c2s.ic.gov",
|
||
implicitGlobalRegion: "us-iso-east-1",
|
||
name: "aws-iso",
|
||
supportsDualStack: false,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^us\\-iso\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-iso-global": {
|
||
description: "AWS ISO (US) global region"
|
||
},
|
||
"us-iso-east-1": {
|
||
description: "US ISO East"
|
||
},
|
||
"us-iso-west-1": {
|
||
description: "US ISO WEST"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-iso-b",
|
||
outputs: {
|
||
dnsSuffix: "sc2s.sgov.gov",
|
||
dualStackDnsSuffix: "sc2s.sgov.gov",
|
||
implicitGlobalRegion: "us-isob-east-1",
|
||
name: "aws-iso-b",
|
||
supportsDualStack: false,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^us\\-isob\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-iso-b-global": {
|
||
description: "AWS ISOB (US) global region"
|
||
},
|
||
"us-isob-east-1": {
|
||
description: "US ISOB East (Ohio)"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-iso-e",
|
||
outputs: {
|
||
dnsSuffix: "cloud.adc-e.uk",
|
||
dualStackDnsSuffix: "cloud.adc-e.uk",
|
||
implicitGlobalRegion: "eu-isoe-west-1",
|
||
name: "aws-iso-e",
|
||
supportsDualStack: false,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^eu\\-isoe\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-iso-e-global": {
|
||
description: "AWS ISOE (Europe) global region"
|
||
},
|
||
"eu-isoe-west-1": {
|
||
description: "EU ISOE West"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-iso-f",
|
||
outputs: {
|
||
dnsSuffix: "csp.hci.ic.gov",
|
||
dualStackDnsSuffix: "csp.hci.ic.gov",
|
||
implicitGlobalRegion: "us-isof-south-1",
|
||
name: "aws-iso-f",
|
||
supportsDualStack: false,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^us\\-isof\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"aws-iso-f-global": {
|
||
description: "AWS ISOF global region"
|
||
},
|
||
"us-isof-east-1": {
|
||
description: "US ISOF EAST"
|
||
},
|
||
"us-isof-south-1": {
|
||
description: "US ISOF SOUTH"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "aws-eusc",
|
||
outputs: {
|
||
dnsSuffix: "amazonaws.eu",
|
||
dualStackDnsSuffix: "amazonaws.eu",
|
||
implicitGlobalRegion: "eusc-de-east-1",
|
||
name: "aws-eusc",
|
||
supportsDualStack: false,
|
||
supportsFIPS: true
|
||
},
|
||
regionRegex: "^eusc\\-(de)\\-\\w+\\-\\d+$",
|
||
regions: {
|
||
"eusc-de-east-1": {
|
||
description: "EU (Germany)"
|
||
}
|
||
}
|
||
}
|
||
];
|
||
var lh = "1.1";
|
||
var fh = {
|
||
partitions: dh,
|
||
version: lh
|
||
};
|
||
var hh = fh;
|
||
var ph = (e) => {
|
||
const { partitions: t } = hh;
|
||
for (const r of t) {
|
||
const { regions: s, outputs: i } = r;
|
||
for (const [o, a] of Object.entries(s))
|
||
if (o === e)
|
||
return {
|
||
...i,
|
||
...a
|
||
};
|
||
}
|
||
for (const r of t) {
|
||
const { regionRegex: s, outputs: i } = r;
|
||
if (new RegExp(s).test(e))
|
||
return {
|
||
...i
|
||
};
|
||
}
|
||
const n = t.find((r) => r.id === "aws");
|
||
if (!n)
|
||
throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");
|
||
return {
|
||
...n.outputs
|
||
};
|
||
};
|
||
var ha = {
|
||
isVirtualHostableS3Bucket: fa,
|
||
parseArn: uh,
|
||
partition: ph
|
||
};
|
||
Jt.aws = ha;
|
||
function gh(e) {
|
||
const t = {};
|
||
if (e = e.replace(/^\?/, ""), e)
|
||
for (const n of e.split("&")) {
|
||
let [r, s = null] = n.split("=");
|
||
r = decodeURIComponent(r), s && (s = decodeURIComponent(s)), r in t ? Array.isArray(t[r]) ? t[r].push(s) : t[r] = [t[r], s] : t[r] = s;
|
||
}
|
||
return t;
|
||
}
|
||
var en = (e) => {
|
||
if (typeof e == "string")
|
||
return en(new URL(e));
|
||
const { hostname: t, pathname: n, port: r, protocol: s, search: i } = e;
|
||
let o;
|
||
return i && (o = gh(i)), {
|
||
hostname: t,
|
||
port: r ? parseInt(r) : void 0,
|
||
protocol: s,
|
||
path: n,
|
||
query: o
|
||
};
|
||
};
|
||
var mh = /\d{12}\.ddb/;
|
||
async function yh(e, t, n) {
|
||
var i, o, a, c, u, l, f;
|
||
const r = n.request;
|
||
if (((i = r == null ? void 0 : r.headers) == null ? void 0 : i["smithy-protocol"]) === "rpc-v2-cbor" && ne(e, "PROTOCOL_RPC_V2_CBOR", "M"), typeof t.retryStrategy == "function") {
|
||
const p = await t.retryStrategy();
|
||
typeof p.acquireInitialRetryToken == "function" ? (a = (o = p.constructor) == null ? void 0 : o.name) != null && a.includes("Adaptive") ? ne(e, "RETRY_MODE_ADAPTIVE", "F") : ne(e, "RETRY_MODE_STANDARD", "E") : ne(e, "RETRY_MODE_LEGACY", "D");
|
||
}
|
||
if (typeof t.accountIdEndpointMode == "function") {
|
||
const p = e.endpointV2;
|
||
switch (String((c = p == null ? void 0 : p.url) == null ? void 0 : c.hostname).match(mh) && ne(e, "ACCOUNT_ID_ENDPOINT", "O"), await ((u = t.accountIdEndpointMode) == null ? void 0 : u.call(t))) {
|
||
case "disabled":
|
||
ne(e, "ACCOUNT_ID_MODE_DISABLED", "Q");
|
||
break;
|
||
case "preferred":
|
||
ne(e, "ACCOUNT_ID_MODE_PREFERRED", "P");
|
||
break;
|
||
case "required":
|
||
ne(e, "ACCOUNT_ID_MODE_REQUIRED", "R");
|
||
break;
|
||
}
|
||
}
|
||
const s = (f = (l = e.__smithy_context) == null ? void 0 : l.selectedHttpAuthScheme) == null ? void 0 : f.identity;
|
||
if (s != null && s.$source) {
|
||
const p = s;
|
||
p.accountId && ne(e, "RESOLVED_ACCOUNT_ID", "T");
|
||
for (const [g, S] of Object.entries(p.$source ?? {}))
|
||
ne(e, g, S);
|
||
}
|
||
}
|
||
var Ds = "user-agent";
|
||
var _n = "x-amz-user-agent";
|
||
var Us = " ";
|
||
var Pn = "/";
|
||
var wh = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
|
||
var bh = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g;
|
||
var $s = "-";
|
||
var Eh = 1024;
|
||
function xh(e) {
|
||
let t = "";
|
||
for (const n in e) {
|
||
const r = e[n];
|
||
if (t.length + r.length + 1 <= Eh) {
|
||
t.length ? t += "," + r : t += r;
|
||
continue;
|
||
}
|
||
break;
|
||
}
|
||
return t;
|
||
}
|
||
var Sh = (e) => (t, n) => async (r) => {
|
||
var g, S, T, A;
|
||
const { request: s } = r;
|
||
if (!se.isInstance(s))
|
||
return t(r);
|
||
const { headers: i } = s, o = ((g = n == null ? void 0 : n.userAgent) == null ? void 0 : g.map($t)) || [], a = (await e.defaultUserAgentProvider()).map($t);
|
||
await yh(n, e, r);
|
||
const c = n;
|
||
a.push(`m/${xh(Object.assign({}, (S = n.__smithy_context) == null ? void 0 : S.features, (T = c.__aws_sdk_context) == null ? void 0 : T.features))}`);
|
||
const u = ((A = e == null ? void 0 : e.customUserAgent) == null ? void 0 : A.map($t)) || [], l = await e.userAgentAppId();
|
||
l && a.push($t([`app/${l}`]));
|
||
const f = [].concat([...a, ...o, ...u]).join(Us), p = [
|
||
...a.filter((I) => I.startsWith("aws-sdk-")),
|
||
...u
|
||
].join(Us);
|
||
return e.runtime !== "browser" ? (p && (i[_n] = i[_n] ? `${i[Ds]} ${p}` : p), i[Ds] = f) : i[_n] = f, t({
|
||
...r,
|
||
request: s
|
||
});
|
||
};
|
||
var $t = (e) => {
|
||
var o;
|
||
const t = e[0].split(Pn).map((a) => a.replace(wh, $s)).join(Pn), n = (o = e[1]) == null ? void 0 : o.replace(bh, $s), r = t.indexOf(Pn), s = t.substring(0, r);
|
||
let i = t.substring(r + 1);
|
||
return s === "api" && (i = i.toLowerCase()), [s, i, n].filter((a) => a && a.length > 0).reduce((a, c, u) => {
|
||
switch (u) {
|
||
case 0:
|
||
return c;
|
||
case 1:
|
||
return `${a}/${c}`;
|
||
default:
|
||
return `${a}#${c}`;
|
||
}
|
||
}, "");
|
||
};
|
||
var Ah = {
|
||
name: "getUserAgentMiddleware",
|
||
step: "build",
|
||
priority: "low",
|
||
tags: ["SET_USER_AGENT", "USER_AGENT"],
|
||
override: true
|
||
};
|
||
var Ch = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Sh(e), Ah);
|
||
}
|
||
});
|
||
var vh = false;
|
||
var Rh = false;
|
||
var pa = (e) => typeof e == "string" && (e.startsWith("fips-") || e.endsWith("-fips"));
|
||
var Ls = (e) => pa(e) ? ["fips-aws-global", "aws-fips"].includes(e) ? "us-east-1" : e.replace(/fips-(dkr-|prod-)?|-fips/, "") : e;
|
||
var kh = (e) => {
|
||
const { region: t, useFipsEndpoint: n } = e;
|
||
if (!t)
|
||
throw new Error("Region is missing");
|
||
return Object.assign(e, {
|
||
region: async () => {
|
||
if (typeof t == "string")
|
||
return Ls(t);
|
||
const r = await t();
|
||
return Ls(r);
|
||
},
|
||
useFipsEndpoint: async () => {
|
||
const r = typeof t == "string" ? t : await t();
|
||
return pa(r) ? true : typeof n != "function" ? Promise.resolve(!!n) : n();
|
||
}
|
||
});
|
||
};
|
||
var Th = (e) => Object.assign(e, {
|
||
eventStreamMarshaller: e.eventStreamSerdeProvider(e)
|
||
});
|
||
var Hs = "content-length";
|
||
function Bh(e) {
|
||
return (t) => async (n) => {
|
||
const r = n.request;
|
||
if (se.isInstance(r)) {
|
||
const { body: s, headers: i } = r;
|
||
if (s && Object.keys(i).map((o) => o.toLowerCase()).indexOf(Hs) === -1)
|
||
try {
|
||
const o = e(s);
|
||
r.headers = {
|
||
...r.headers,
|
||
[Hs]: String(o)
|
||
};
|
||
} catch {
|
||
}
|
||
}
|
||
return t({
|
||
...n,
|
||
request: r
|
||
});
|
||
};
|
||
}
|
||
var Ih = {
|
||
step: "build",
|
||
tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"],
|
||
name: "contentLengthMiddleware",
|
||
override: true
|
||
};
|
||
var _h = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Bh(e.bodyLengthChecker), Ih);
|
||
}
|
||
});
|
||
var Ph = async (e) => {
|
||
const t = (e == null ? void 0 : e.Bucket) || "";
|
||
if (typeof e.Bucket == "string" && (e.Bucket = t.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?"))), Dh(t)) {
|
||
if (e.ForcePathStyle === true)
|
||
throw new Error("Path-style addressing cannot be used with ARN buckets");
|
||
} else
|
||
(!Oh(t) || t.indexOf(".") !== -1 && !String(e.Endpoint).startsWith("http:") || t.toLowerCase() !== t || t.length < 3) && (e.ForcePathStyle = true);
|
||
return e.DisableMultiRegionAccessPoints && (e.disableMultiRegionAccessPoints = true, e.DisableMRAP = true), e;
|
||
};
|
||
var Nh = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
|
||
var Mh = /(\d+\.){3}\d+/;
|
||
var Fh = /\.\./;
|
||
var Oh = (e) => Nh.test(e) && !Mh.test(e) && !Fh.test(e);
|
||
var Dh = (e) => {
|
||
const [t, n, r, , , s] = e.split(":"), i = t === "arn" && e.split(":").length >= 6, o = !!(i && n && r && s);
|
||
if (i && !o)
|
||
throw new Error(`Invalid ARN: ${e} was an invalid ARN.`);
|
||
return o;
|
||
};
|
||
var Uh = (e, t, n) => {
|
||
const r = async () => {
|
||
const s = n[e] ?? n[t];
|
||
return typeof s == "function" ? s() : s;
|
||
};
|
||
return e === "credentialScope" || t === "CredentialScope" ? async () => {
|
||
const s = typeof n.credentials == "function" ? await n.credentials() : n.credentials;
|
||
return (s == null ? void 0 : s.credentialScope) ?? (s == null ? void 0 : s.CredentialScope);
|
||
} : e === "accountId" || t === "AccountId" ? async () => {
|
||
const s = typeof n.credentials == "function" ? await n.credentials() : n.credentials;
|
||
return (s == null ? void 0 : s.accountId) ?? (s == null ? void 0 : s.AccountId);
|
||
} : e === "endpoint" || t === "endpoint" ? async () => {
|
||
if (n.isCustomEndpoint === false)
|
||
return;
|
||
const s = await r();
|
||
if (s && typeof s == "object") {
|
||
if ("url" in s)
|
||
return s.url.href;
|
||
if ("hostname" in s) {
|
||
const { protocol: i, hostname: o, port: a, path: c } = s;
|
||
return `${i}//${o}${a ? ":" + a : ""}${c}`;
|
||
}
|
||
}
|
||
return s;
|
||
} : r;
|
||
};
|
||
var ga = async (e) => {
|
||
};
|
||
var ma = (e) => typeof e == "object" ? "url" in e ? en(e.url) : e : en(e);
|
||
var $h = async (e, t, n, r) => {
|
||
if (!n.isCustomEndpoint) {
|
||
let o;
|
||
n.serviceConfiguredEndpoint ? o = await n.serviceConfiguredEndpoint() : o = await ga(n.serviceId), o && (n.endpoint = () => Promise.resolve(ma(o)), n.isCustomEndpoint = true);
|
||
}
|
||
const s = await ya(e, t, n);
|
||
if (typeof n.endpointProvider != "function")
|
||
throw new Error("config.endpointProvider is not set.");
|
||
return n.endpointProvider(s, r);
|
||
};
|
||
var ya = async (e, t, n) => {
|
||
var i;
|
||
const r = {}, s = ((i = t == null ? void 0 : t.getEndpointParameterInstructions) == null ? void 0 : i.call(t)) || {};
|
||
for (const [o, a] of Object.entries(s))
|
||
switch (a.type) {
|
||
case "staticContextParams":
|
||
r[o] = a.value;
|
||
break;
|
||
case "contextParams":
|
||
r[o] = e[a.name];
|
||
break;
|
||
case "clientContextParams":
|
||
case "builtInParams":
|
||
r[o] = await Uh(a.name, o, n)();
|
||
break;
|
||
case "operationContextParams":
|
||
r[o] = a.get(e);
|
||
break;
|
||
default:
|
||
throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(a));
|
||
}
|
||
return Object.keys(s).length === 0 && Object.assign(r, n), String(n.serviceId).toLowerCase() === "s3" && await Ph(r), r;
|
||
};
|
||
var Lh = ({ config: e, instructions: t }) => (n, r) => async (s) => {
|
||
var a, c, u;
|
||
e.isCustomEndpoint && Tu(r, "ENDPOINT_OVERRIDE", "N");
|
||
const i = await $h(s.input, {
|
||
getEndpointParameterInstructions() {
|
||
return t;
|
||
}
|
||
}, { ...e }, r);
|
||
r.endpointV2 = i, r.authSchemes = (a = i.properties) == null ? void 0 : a.authSchemes;
|
||
const o = (c = r.authSchemes) == null ? void 0 : c[0];
|
||
if (o) {
|
||
r.signing_region = o.signingRegion, r.signing_service = o.signingName;
|
||
const l = St(r), f = (u = l == null ? void 0 : l.selectedHttpAuthScheme) == null ? void 0 : u.httpAuthOption;
|
||
f && (f.signingProperties = Object.assign(f.signingProperties || {}, {
|
||
signing_region: o.signingRegion,
|
||
signingRegion: o.signingRegion,
|
||
signing_service: o.signingName,
|
||
signingName: o.signingName,
|
||
signingRegionSet: o.signingRegionSet
|
||
}, o.properties));
|
||
}
|
||
return n({
|
||
...s
|
||
});
|
||
};
|
||
var Hh = {
|
||
step: "serialize",
|
||
tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"],
|
||
name: "endpointV2Middleware",
|
||
override: true,
|
||
relation: "before",
|
||
toMiddleware: xo.name
|
||
};
|
||
var wa = (e, t) => ({
|
||
applyToStack: (n) => {
|
||
n.addRelativeTo(Lh({
|
||
config: e,
|
||
instructions: t
|
||
}), Hh);
|
||
}
|
||
});
|
||
var zh = (e) => {
|
||
const t = e.tls ?? true, { endpoint: n, useDualstackEndpoint: r, useFipsEndpoint: s } = e, i = n != null ? async () => ma(await Ne(n)()) : void 0, a = Object.assign(e, {
|
||
endpoint: i,
|
||
tls: t,
|
||
isCustomEndpoint: !!n,
|
||
useDualstackEndpoint: Ne(r ?? false),
|
||
useFipsEndpoint: Ne(s ?? false)
|
||
});
|
||
let c;
|
||
return a.serviceConfiguredEndpoint = async () => (e.serviceId && !c && (c = ga(e.serviceId)), c), a;
|
||
};
|
||
var wt;
|
||
(function(e) {
|
||
e.STANDARD = "standard", e.ADAPTIVE = "adaptive";
|
||
})(wt || (wt = {}));
|
||
var Fr = 3;
|
||
var jh = wt.STANDARD;
|
||
var qh = [
|
||
"BandwidthLimitExceeded",
|
||
"EC2ThrottledException",
|
||
"LimitExceededException",
|
||
"PriorRequestNotComplete",
|
||
"ProvisionedThroughputExceededException",
|
||
"RequestLimitExceeded",
|
||
"RequestThrottled",
|
||
"RequestThrottledException",
|
||
"SlowDown",
|
||
"ThrottledException",
|
||
"Throttling",
|
||
"ThrottlingException",
|
||
"TooManyRequestsException",
|
||
"TransactionInProgressException"
|
||
];
|
||
var Vh = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"];
|
||
var Wh = [500, 502, 503, 504];
|
||
var Kh = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"];
|
||
var Gh = ["EHOSTUNREACH", "ENETUNREACH", "ENOTFOUND"];
|
||
var Zh = (e) => {
|
||
var t;
|
||
return (t = e.$metadata) == null ? void 0 : t.clockSkewCorrected;
|
||
};
|
||
var Xh = (e) => {
|
||
const t = /* @__PURE__ */ new Set([
|
||
"Failed to fetch",
|
||
"NetworkError when attempting to fetch resource",
|
||
"The Internet connection appears to be offline",
|
||
"Load failed",
|
||
"Network request failed"
|
||
]);
|
||
return e && e instanceof TypeError ? t.has(e.message) : false;
|
||
};
|
||
var ba = (e) => {
|
||
var t, n;
|
||
return ((t = e.$metadata) == null ? void 0 : t.httpStatusCode) === 429 || qh.includes(e.name) || ((n = e.$retryable) == null ? void 0 : n.throttling) == true;
|
||
};
|
||
var Or = (e, t = 0) => {
|
||
var n;
|
||
return Zh(e) || Vh.includes(e.name) || Kh.includes((e == null ? void 0 : e.code) || "") || Gh.includes((e == null ? void 0 : e.code) || "") || Wh.includes(((n = e.$metadata) == null ? void 0 : n.httpStatusCode) || 0) || Xh(e) || e.cause !== void 0 && t <= 10 && Or(e.cause, t + 1);
|
||
};
|
||
var Qh = (e) => {
|
||
var t;
|
||
if (((t = e.$metadata) == null ? void 0 : t.httpStatusCode) !== void 0) {
|
||
const n = e.$metadata.httpStatusCode;
|
||
return 500 <= n && n <= 599 && !Or(e);
|
||
}
|
||
return false;
|
||
};
|
||
var ln = class _ln {
|
||
constructor(t) {
|
||
this.currentCapacity = 0, this.enabled = false, this.lastMaxRate = 0, this.measuredTxRate = 0, this.requestCount = 0, this.lastTimestamp = 0, this.timeWindow = 0, this.beta = (t == null ? void 0 : t.beta) ?? 0.7, this.minCapacity = (t == null ? void 0 : t.minCapacity) ?? 1, this.minFillRate = (t == null ? void 0 : t.minFillRate) ?? 0.5, this.scaleConstant = (t == null ? void 0 : t.scaleConstant) ?? 0.4, this.smooth = (t == null ? void 0 : t.smooth) ?? 0.8;
|
||
const n = this.getCurrentTimeInSeconds();
|
||
this.lastThrottleTime = n, this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()), this.fillRate = this.minFillRate, this.maxCapacity = this.minCapacity;
|
||
}
|
||
getCurrentTimeInSeconds() {
|
||
return Date.now() / 1e3;
|
||
}
|
||
async getSendToken() {
|
||
return this.acquireTokenBucket(1);
|
||
}
|
||
async acquireTokenBucket(t) {
|
||
if (this.enabled) {
|
||
if (this.refillTokenBucket(), t > this.currentCapacity) {
|
||
const n = (t - this.currentCapacity) / this.fillRate * 1e3;
|
||
await new Promise((r) => _ln.setTimeoutFn(r, n));
|
||
}
|
||
this.currentCapacity = this.currentCapacity - t;
|
||
}
|
||
}
|
||
refillTokenBucket() {
|
||
const t = this.getCurrentTimeInSeconds();
|
||
if (!this.lastTimestamp) {
|
||
this.lastTimestamp = t;
|
||
return;
|
||
}
|
||
const n = (t - this.lastTimestamp) * this.fillRate;
|
||
this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + n), this.lastTimestamp = t;
|
||
}
|
||
updateClientSendingRate(t) {
|
||
let n;
|
||
if (this.updateMeasuredRate(), ba(t)) {
|
||
const s = this.enabled ? Math.min(this.measuredTxRate, this.fillRate) : this.measuredTxRate;
|
||
this.lastMaxRate = s, this.calculateTimeWindow(), this.lastThrottleTime = this.getCurrentTimeInSeconds(), n = this.cubicThrottle(s), this.enableTokenBucket();
|
||
} else
|
||
this.calculateTimeWindow(), n = this.cubicSuccess(this.getCurrentTimeInSeconds());
|
||
const r = Math.min(n, 2 * this.measuredTxRate);
|
||
this.updateTokenBucketRate(r);
|
||
}
|
||
calculateTimeWindow() {
|
||
this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3));
|
||
}
|
||
cubicThrottle(t) {
|
||
return this.getPrecise(t * this.beta);
|
||
}
|
||
cubicSuccess(t) {
|
||
return this.getPrecise(this.scaleConstant * Math.pow(t - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);
|
||
}
|
||
enableTokenBucket() {
|
||
this.enabled = true;
|
||
}
|
||
updateTokenBucketRate(t) {
|
||
this.refillTokenBucket(), this.fillRate = Math.max(t, this.minFillRate), this.maxCapacity = Math.max(t, this.minCapacity), this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);
|
||
}
|
||
updateMeasuredRate() {
|
||
const t = this.getCurrentTimeInSeconds(), n = Math.floor(t * 2) / 2;
|
||
if (this.requestCount++, n > this.lastTxRateBucket) {
|
||
const r = this.requestCount / (n - this.lastTxRateBucket);
|
||
this.measuredTxRate = this.getPrecise(r * this.smooth + this.measuredTxRate * (1 - this.smooth)), this.requestCount = 0, this.lastTxRateBucket = n;
|
||
}
|
||
}
|
||
getPrecise(t) {
|
||
return parseFloat(t.toFixed(8));
|
||
}
|
||
};
|
||
ln.setTimeoutFn = setTimeout;
|
||
var br = 100;
|
||
var Ea = 20 * 1e3;
|
||
var Yh = 500;
|
||
var zs = 500;
|
||
var Jh = 5;
|
||
var ep = 10;
|
||
var tp = 1;
|
||
var np = "amz-sdk-invocation-id";
|
||
var rp = "amz-sdk-request";
|
||
var sp = () => {
|
||
let e = br;
|
||
return {
|
||
computeNextBackoffDelay: (r) => Math.floor(Math.min(Ea, Math.random() * 2 ** r * e)),
|
||
setDelayBase: (r) => {
|
||
e = r;
|
||
}
|
||
};
|
||
};
|
||
var js = ({ retryDelay: e, retryCount: t, retryCost: n }) => ({
|
||
getRetryCount: () => t,
|
||
getRetryDelay: () => Math.min(Ea, e),
|
||
getRetryCost: () => n
|
||
});
|
||
var xa = class {
|
||
constructor(t) {
|
||
this.maxAttempts = t, this.mode = wt.STANDARD, this.capacity = zs, this.retryBackoffStrategy = sp(), this.maxAttemptsProvider = typeof t == "function" ? t : async () => t;
|
||
}
|
||
async acquireInitialRetryToken(t) {
|
||
return js({
|
||
retryDelay: br,
|
||
retryCount: 0
|
||
});
|
||
}
|
||
async refreshRetryTokenForRetry(t, n) {
|
||
const r = await this.getMaxAttempts();
|
||
if (this.shouldRetry(t, n, r)) {
|
||
const s = n.errorType;
|
||
this.retryBackoffStrategy.setDelayBase(s === "THROTTLING" ? Yh : br);
|
||
const i = this.retryBackoffStrategy.computeNextBackoffDelay(t.getRetryCount()), o = n.retryAfterHint ? Math.max(n.retryAfterHint.getTime() - Date.now() || 0, i) : i, a = this.getCapacityCost(s);
|
||
return this.capacity -= a, js({
|
||
retryDelay: o,
|
||
retryCount: t.getRetryCount() + 1,
|
||
retryCost: a
|
||
});
|
||
}
|
||
throw new Error("No retry token available");
|
||
}
|
||
recordSuccess(t) {
|
||
this.capacity = Math.max(zs, this.capacity + (t.getRetryCost() ?? tp));
|
||
}
|
||
getCapacity() {
|
||
return this.capacity;
|
||
}
|
||
async getMaxAttempts() {
|
||
try {
|
||
return await this.maxAttemptsProvider();
|
||
} catch {
|
||
return Fr;
|
||
}
|
||
}
|
||
shouldRetry(t, n, r) {
|
||
return t.getRetryCount() + 1 < r && this.capacity >= this.getCapacityCost(n.errorType) && this.isRetryableError(n.errorType);
|
||
}
|
||
getCapacityCost(t) {
|
||
return t === "TRANSIENT" ? ep : Jh;
|
||
}
|
||
isRetryableError(t) {
|
||
return t === "THROTTLING" || t === "TRANSIENT";
|
||
}
|
||
};
|
||
var ip = class {
|
||
constructor(t, n) {
|
||
this.maxAttemptsProvider = t, this.mode = wt.ADAPTIVE;
|
||
const { rateLimiter: r } = n ?? {};
|
||
this.rateLimiter = r ?? new ln(), this.standardRetryStrategy = new xa(t);
|
||
}
|
||
async acquireInitialRetryToken(t) {
|
||
return await this.rateLimiter.getSendToken(), this.standardRetryStrategy.acquireInitialRetryToken(t);
|
||
}
|
||
async refreshRetryTokenForRetry(t, n) {
|
||
return this.rateLimiter.updateClientSendingRate(n), this.standardRetryStrategy.refreshRetryTokenForRetry(t, n);
|
||
}
|
||
recordSuccess(t) {
|
||
this.rateLimiter.updateClientSendingRate({}), this.standardRetryStrategy.recordSuccess(t);
|
||
}
|
||
};
|
||
var Lt;
|
||
var op = new Uint8Array(16);
|
||
function ap() {
|
||
if (!Lt && (Lt = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Lt))
|
||
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
||
return Lt(op);
|
||
}
|
||
var le = [];
|
||
for (let e = 0; e < 256; ++e)
|
||
le.push((e + 256).toString(16).slice(1));
|
||
function cp(e, t = 0) {
|
||
return le[e[t + 0]] + le[e[t + 1]] + le[e[t + 2]] + le[e[t + 3]] + "-" + le[e[t + 4]] + le[e[t + 5]] + "-" + le[e[t + 6]] + le[e[t + 7]] + "-" + le[e[t + 8]] + le[e[t + 9]] + "-" + le[e[t + 10]] + le[e[t + 11]] + le[e[t + 12]] + le[e[t + 13]] + le[e[t + 14]] + le[e[t + 15]];
|
||
}
|
||
var up = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||
var qs = {
|
||
randomUUID: up
|
||
};
|
||
function dp(e, t, n) {
|
||
if (qs.randomUUID && !t && !e)
|
||
return qs.randomUUID();
|
||
e = e || {};
|
||
const r = e.random || (e.rng || ap)();
|
||
if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, t) {
|
||
n = n || 0;
|
||
for (let s = 0; s < 16; ++s)
|
||
t[n + s] = r[s];
|
||
return t;
|
||
}
|
||
return cp(r);
|
||
}
|
||
var lp = (e) => e instanceof Error ? e : e instanceof Object ? Object.assign(new Error(), e) : typeof e == "string" ? new Error(e) : new Error(`AWS SDK error wrapper for ${e}`);
|
||
var fp = (e) => {
|
||
const { retryStrategy: t, retryMode: n, maxAttempts: r } = e, s = Ne(r ?? Fr);
|
||
return Object.assign(e, {
|
||
maxAttempts: s,
|
||
retryStrategy: async () => t || (await Ne(n)() === wt.ADAPTIVE ? new ip(s) : new xa(s))
|
||
});
|
||
};
|
||
var hp = (e) => (e == null ? void 0 : e.body) instanceof ReadableStream;
|
||
var pp = (e) => (t, n) => async (r) => {
|
||
var o;
|
||
let s = await e.retryStrategy();
|
||
const i = await e.maxAttempts();
|
||
if (gp(s)) {
|
||
s = s;
|
||
let a = await s.acquireInitialRetryToken(n.partition_id), c = new Error(), u = 0, l = 0;
|
||
const { request: f } = r, p = se.isInstance(f);
|
||
for (p && (f.headers[np] = dp()); ; )
|
||
try {
|
||
p && (f.headers[rp] = `attempt=${u + 1}; max=${i}`);
|
||
const { response: g, output: S } = await t(r);
|
||
return s.recordSuccess(a), S.$metadata.attempts = u + 1, S.$metadata.totalRetryDelay = l, { response: g, output: S };
|
||
} catch (g) {
|
||
const S = mp(g);
|
||
if (c = lp(g), p && hp(f))
|
||
throw (o = n.logger instanceof kr ? console : n.logger) == null || o.warn("An error was encountered in a non-retryable streaming request."), c;
|
||
try {
|
||
a = await s.refreshRetryTokenForRetry(a, S);
|
||
} catch {
|
||
throw c.$metadata || (c.$metadata = {}), c.$metadata.attempts = u + 1, c.$metadata.totalRetryDelay = l, c;
|
||
}
|
||
u = a.getRetryCount();
|
||
const T = a.getRetryDelay();
|
||
l += T, await new Promise((A) => setTimeout(A, T));
|
||
}
|
||
} else
|
||
return s = s, s != null && s.mode && (n.userAgent = [...n.userAgent || [], ["cfg/retry-mode", s.mode]]), s.retry(t, r);
|
||
};
|
||
var gp = (e) => typeof e.acquireInitialRetryToken < "u" && typeof e.refreshRetryTokenForRetry < "u" && typeof e.recordSuccess < "u";
|
||
var mp = (e) => {
|
||
const t = {
|
||
error: e,
|
||
errorType: yp(e)
|
||
}, n = Ep(e.$response);
|
||
return n && (t.retryAfterHint = n), t;
|
||
};
|
||
var yp = (e) => ba(e) ? "THROTTLING" : Or(e) ? "TRANSIENT" : Qh(e) ? "SERVER_ERROR" : "CLIENT_ERROR";
|
||
var wp = {
|
||
name: "retryMiddleware",
|
||
tags: ["RETRY"],
|
||
step: "finalizeRequest",
|
||
priority: "high",
|
||
override: true
|
||
};
|
||
var bp = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(pp(e), wp);
|
||
}
|
||
});
|
||
var Ep = (e) => {
|
||
if (!gt2.isInstance(e))
|
||
return;
|
||
const t = Object.keys(e.headers).find((i) => i.toLowerCase() === "retry-after");
|
||
if (!t)
|
||
return;
|
||
const n = e.headers[t], r = Number(n);
|
||
return Number.isNaN(r) ? new Date(n) : new Date(r * 1e3);
|
||
};
|
||
var Sa = class {
|
||
constructor(t) {
|
||
_(this, "sigv4aSigner");
|
||
_(this, "sigv4Signer");
|
||
_(this, "signerOptions");
|
||
this.sigv4Signer = new wf(t), this.signerOptions = t;
|
||
}
|
||
static sigv4aDependency() {
|
||
return "none";
|
||
}
|
||
async sign(t, n = {}) {
|
||
return n.signingRegion === "*" ? this.getSigv4aSigner().sign(t, n) : this.sigv4Signer.sign(t, n);
|
||
}
|
||
async signWithCredentials(t, n, r = {}) {
|
||
if (r.signingRegion === "*")
|
||
throw this.getSigv4aSigner(), new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);
|
||
return this.sigv4Signer.signWithCredentials(t, n, r);
|
||
}
|
||
async presign(t, n = {}) {
|
||
if (n.signingRegion === "*")
|
||
throw this.getSigv4aSigner(), new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);
|
||
return this.sigv4Signer.presign(t, n);
|
||
}
|
||
async presignWithCredentials(t, n, r = {}) {
|
||
if (r.signingRegion === "*")
|
||
throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");
|
||
return this.sigv4Signer.presignWithCredentials(t, n, r);
|
||
}
|
||
getSigv4aSigner() {
|
||
if (!this.sigv4aSigner)
|
||
throw this.signerOptions.runtime === "node" ? new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt") : new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");
|
||
return this.sigv4aSigner;
|
||
}
|
||
};
|
||
var Dr = "required";
|
||
var d = "type";
|
||
var w = "rules";
|
||
var h = "conditions";
|
||
var m = "fn";
|
||
var y = "argv";
|
||
var B = "ref";
|
||
var M = "assign";
|
||
var v = "url";
|
||
var R = "properties";
|
||
var rt = "backend";
|
||
var be = "authSchemes";
|
||
var ue = "disableDoubleEncoding";
|
||
var de = "signingName";
|
||
var Ce = "signingRegion";
|
||
var k = "headers";
|
||
var Ur = "signingRegionSet";
|
||
var xp = 6;
|
||
var Sp = false;
|
||
var Oe = true;
|
||
var Te = "isSet";
|
||
var J = "booleanEquals";
|
||
var C = "error";
|
||
var tn = "aws.partition";
|
||
var $ = "stringEquals";
|
||
var G = "getAttr";
|
||
var Y = "name";
|
||
var q = "substring";
|
||
var Vs = "bucketSuffix";
|
||
var $r = "parseURL";
|
||
var x = "endpoint";
|
||
var b = "tree";
|
||
var nn = "aws.isVirtualHostableS3Bucket";
|
||
var rn = "{url#scheme}://{Bucket}.{url#authority}{url#path}";
|
||
var $e = "not";
|
||
var Ws = "accessPointSuffix";
|
||
var Vt = "{url#scheme}://{url#authority}{url#path}";
|
||
var Aa = "hardwareType";
|
||
var Ca = "regionPrefix";
|
||
var Ks = "bucketAliasSuffix";
|
||
var Er = "outpostId";
|
||
var at = "isValidHostLabel";
|
||
var Lr = "sigv4a";
|
||
var Dt = "s3-outposts";
|
||
var bt = "s3";
|
||
var va = "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}";
|
||
var Ra = "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}";
|
||
var Gs = "https://{Bucket}.s3.{partitionResult#dnsSuffix}";
|
||
var ka = "aws.parseArn";
|
||
var Ta = "bucketArn";
|
||
var Ba = "arnType";
|
||
var sn = "";
|
||
var Hr = "s3-object-lambda";
|
||
var Ia = "accesspoint";
|
||
var zr = "accessPointName";
|
||
var Zs = "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}";
|
||
var Xs = "mrapPartition";
|
||
var Qs = "outpostType";
|
||
var Ys = "arnPrefix";
|
||
var _a = "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}";
|
||
var Js = "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}";
|
||
var ei = "https://s3.{partitionResult#dnsSuffix}";
|
||
var ct = { [Dr]: false, [d]: "String" };
|
||
var ut = { [Dr]: true, default: false, [d]: "Boolean" };
|
||
var vt = { [Dr]: false, [d]: "Boolean" };
|
||
var _e = { [m]: J, [y]: [{ [B]: "Accelerate" }, true] };
|
||
var W = { [m]: J, [y]: [{ [B]: "UseFIPS" }, true] };
|
||
var j = { [m]: J, [y]: [{ [B]: "UseDualStack" }, true] };
|
||
var X = { [m]: Te, [y]: [{ [B]: "Endpoint" }] };
|
||
var Pa = { [m]: tn, [y]: [{ [B]: "Region" }], [M]: "partitionResult" };
|
||
var ti = { [m]: $, [y]: [{ [m]: G, [y]: [{ [B]: "partitionResult" }, Y] }, "aws-cn"] };
|
||
var Pt = { [m]: Te, [y]: [{ [B]: "Bucket" }] };
|
||
var U = { [B]: "Bucket" };
|
||
var ni = { [h]: [j], [C]: "S3Express does not support Dual-stack.", [d]: C };
|
||
var ri = { [h]: [_e], [C]: "S3Express does not support S3 Accelerate.", [d]: C };
|
||
var si = { [h]: [X, { [m]: $r, [y]: [{ [B]: "Endpoint" }], [M]: "url" }], [w]: [{ [h]: [{ [m]: Te, [y]: [{ [B]: "DisableS3ExpressSessionAuth" }] }, { [m]: J, [y]: [{ [B]: "DisableS3ExpressSessionAuth" }, true] }], [w]: [{ [h]: [{ [m]: J, [y]: [{ [m]: G, [y]: [{ [B]: "url" }, "isIp"] }, true] }], [w]: [{ [h]: [{ [m]: "uriEncode", [y]: [U], [M]: "uri_encoded_bucket" }], [w]: [{ [x]: { [v]: "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }], [d]: b }], [d]: b }, { [h]: [{ [m]: nn, [y]: [U, false] }], [w]: [{ [x]: { [v]: rn, [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }], [d]: b }, { [C]: "S3Express bucket name is not a valid virtual hostable name.", [d]: C }], [d]: b }, { [h]: [{ [m]: J, [y]: [{ [m]: G, [y]: [{ [B]: "url" }, "isIp"] }, true] }], [w]: [{ [h]: [{ [m]: "uriEncode", [y]: [U], [M]: "uri_encoded_bucket" }], [w]: [{ [x]: { [v]: "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4-s3express", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }], [d]: b }], [d]: b }, { [h]: [{ [m]: nn, [y]: [U, false] }], [w]: [{ [x]: { [v]: rn, [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4-s3express", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }], [d]: b }, { [C]: "S3Express bucket name is not a valid virtual hostable name.", [d]: C }], [d]: b };
|
||
var Se = { [m]: $r, [y]: [{ [B]: "Endpoint" }], [M]: "url" };
|
||
var Nn = { [m]: J, [y]: [{ [m]: G, [y]: [{ [B]: "url" }, "isIp"] }, true] };
|
||
var Na = { [B]: "url" };
|
||
var Ma = { [m]: "uriEncode", [y]: [U], [M]: "uri_encoded_bucket" };
|
||
var tt = { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4", [de]: "s3express", [Ce]: "{Region}" }] };
|
||
var P = {};
|
||
var Fa = { [m]: nn, [y]: [U, false] };
|
||
var ii = { [C]: "S3Express bucket name is not a valid virtual hostable name.", [d]: C };
|
||
var oi = { [m]: Te, [y]: [{ [B]: "UseS3ExpressControlEndpoint" }] };
|
||
var ai = { [m]: J, [y]: [{ [B]: "UseS3ExpressControlEndpoint" }, true] };
|
||
var N = { [m]: $e, [y]: [X] };
|
||
var Ht = { [C]: "Unrecognized S3Express bucket name format.", [d]: C };
|
||
var ci = { [m]: $e, [y]: [Pt] };
|
||
var ui = { [B]: Aa };
|
||
var di = { [h]: [N], [C]: "Expected a endpoint to be specified but no endpoint was found", [d]: C };
|
||
var zt = { [be]: [{ [ue]: true, [Y]: Lr, [de]: Dt, [Ur]: ["*"] }, { [ue]: true, [Y]: "sigv4", [de]: Dt, [Ce]: "{Region}" }] };
|
||
var Mn = { [m]: J, [y]: [{ [B]: "ForcePathStyle" }, false] };
|
||
var Ap = { [B]: "ForcePathStyle" };
|
||
var te = { [m]: J, [y]: [{ [B]: "Accelerate" }, false] };
|
||
var ie = { [m]: $, [y]: [{ [B]: "Region" }, "aws-global"] };
|
||
var oe = { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: bt, [Ce]: "us-east-1" }] };
|
||
var D = { [m]: $e, [y]: [ie] };
|
||
var ae = { [m]: J, [y]: [{ [B]: "UseGlobalEndpoint" }, true] };
|
||
var li = { [v]: "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", [R]: { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: bt, [Ce]: "{Region}" }] }, [k]: {} };
|
||
var re = { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: bt, [Ce]: "{Region}" }] };
|
||
var ce = { [m]: J, [y]: [{ [B]: "UseGlobalEndpoint" }, false] };
|
||
var O = { [m]: J, [y]: [{ [B]: "UseDualStack" }, false] };
|
||
var fi = { [v]: "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var F = { [m]: J, [y]: [{ [B]: "UseFIPS" }, false] };
|
||
var hi = { [v]: "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var pi = { [v]: "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var Fn = { [m]: J, [y]: [{ [m]: G, [y]: [Na, "isIp"] }, false] };
|
||
var On = { [v]: va, [R]: re, [k]: {} };
|
||
var xr = { [v]: rn, [R]: re, [k]: {} };
|
||
var gi = { [x]: xr, [d]: x };
|
||
var Dn = { [v]: Ra, [R]: re, [k]: {} };
|
||
var mi = { [v]: "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var jt = { [C]: "Invalid region: region was not a valid DNS name.", [d]: C };
|
||
var ke = { [B]: Ta };
|
||
var Oa = { [B]: Ba };
|
||
var Un = { [m]: G, [y]: [ke, "service"] };
|
||
var jr = { [B]: zr };
|
||
var yi = { [h]: [j], [C]: "S3 Object Lambda does not support Dual-stack", [d]: C };
|
||
var wi = { [h]: [_e], [C]: "S3 Object Lambda does not support S3 Accelerate", [d]: C };
|
||
var bi = { [h]: [{ [m]: Te, [y]: [{ [B]: "DisableAccessPoints" }] }, { [m]: J, [y]: [{ [B]: "DisableAccessPoints" }, true] }], [C]: "Access points are not supported for this operation", [d]: C };
|
||
var $n = { [h]: [{ [m]: Te, [y]: [{ [B]: "UseArnRegion" }] }, { [m]: J, [y]: [{ [B]: "UseArnRegion" }, false] }, { [m]: $e, [y]: [{ [m]: $, [y]: [{ [m]: G, [y]: [ke, "region"] }, "{Region}"] }] }], [C]: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [d]: C };
|
||
var Da = { [m]: G, [y]: [{ [B]: "bucketPartition" }, Y] };
|
||
var Ua = { [m]: G, [y]: [ke, "accountId"] };
|
||
var Ln = { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: Hr, [Ce]: "{bucketArn#region}" }] };
|
||
var Ei = { [C]: "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", [d]: C };
|
||
var Hn = { [C]: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [d]: C };
|
||
var zn = { [C]: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [d]: C };
|
||
var jn = { [C]: "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", [d]: C };
|
||
var xi = { [C]: "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", [d]: C };
|
||
var Si = { [C]: "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided", [d]: C };
|
||
var Rt = { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: bt, [Ce]: "{bucketArn#region}" }] };
|
||
var Ai = { [be]: [{ [ue]: true, [Y]: Lr, [de]: Dt, [Ur]: ["*"] }, { [ue]: true, [Y]: "sigv4", [de]: Dt, [Ce]: "{bucketArn#region}" }] };
|
||
var Ci = { [m]: ka, [y]: [U] };
|
||
var vi = { [v]: "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: re, [k]: {} };
|
||
var Ri = { [v]: "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: re, [k]: {} };
|
||
var ki = { [v]: "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: re, [k]: {} };
|
||
var qn = { [v]: _a, [R]: re, [k]: {} };
|
||
var Ti = { [v]: "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: re, [k]: {} };
|
||
var Bi = { [B]: "UseObjectLambdaEndpoint" };
|
||
var Vn = { [be]: [{ [ue]: true, [Y]: "sigv4", [de]: Hr, [Ce]: "{Region}" }] };
|
||
var Ii = { [v]: "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var _i = { [v]: "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var Pi = { [v]: "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var Wn = { [v]: Vt, [R]: re, [k]: {} };
|
||
var Ni = { [v]: "https://s3.{Region}.{partitionResult#dnsSuffix}", [R]: re, [k]: {} };
|
||
var Kn = [{ [B]: "Region" }];
|
||
var Cp = [{ [B]: "Endpoint" }];
|
||
var vp = [U];
|
||
var Mi = [j];
|
||
var Gn = [_e];
|
||
var dt = [X, Se];
|
||
var Fi = [{ [m]: Te, [y]: [{ [B]: "DisableS3ExpressSessionAuth" }] }, { [m]: J, [y]: [{ [B]: "DisableS3ExpressSessionAuth" }, true] }];
|
||
var Rp = [Ma];
|
||
var Oi = [Fa];
|
||
var Ie = [Pa];
|
||
var lt = [W];
|
||
var Di = [{ [m]: q, [y]: [U, 6, 14, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 14, 16, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var De = [{ [h]: [W], [x]: { [v]: "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", [R]: tt, [k]: {} }, [d]: x }, { [x]: { [v]: "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", [R]: tt, [k]: {} }, [d]: x }];
|
||
var Ui = [{ [m]: q, [y]: [U, 6, 15, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 15, 17, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var $i = [{ [m]: q, [y]: [U, 6, 19, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 19, 21, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Li = [{ [m]: q, [y]: [U, 6, 20, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 20, 22, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Hi = [{ [m]: q, [y]: [U, 6, 26, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 26, 28, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Ue = [{ [h]: [W], [x]: { [v]: "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4-s3express", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }, { [x]: { [v]: "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", [R]: { [rt]: "S3Express", [be]: [{ [ue]: true, [Y]: "sigv4-s3express", [de]: "s3express", [Ce]: "{Region}" }] }, [k]: {} }, [d]: x }];
|
||
var zi = [U, 0, 7, true];
|
||
var ji = [{ [m]: q, [y]: [U, 7, 15, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 15, 17, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var qi = [{ [m]: q, [y]: [U, 7, 16, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 16, 18, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Vi = [{ [m]: q, [y]: [U, 7, 20, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 20, 22, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Wi = [{ [m]: q, [y]: [U, 7, 21, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 21, 23, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var Ki = [{ [m]: q, [y]: [U, 7, 27, true], [M]: "s3expressAvailabilityZoneId" }, { [m]: q, [y]: [U, 27, 29, true], [M]: "s3expressAvailabilityZoneDelim" }, { [m]: $, [y]: [{ [B]: "s3expressAvailabilityZoneDelim" }, "--"] }];
|
||
var kp = [Pt];
|
||
var Gi = [{ [m]: at, [y]: [{ [B]: Er }, false] }];
|
||
var Zi = [{ [m]: $, [y]: [{ [B]: Ca }, "beta"] }];
|
||
var Tp = ["*"];
|
||
var Xi = [{ [m]: at, [y]: [{ [B]: "Region" }, false] }];
|
||
var He = [{ [m]: $, [y]: [{ [B]: "Region" }, "us-east-1"] }];
|
||
var Zn = [{ [m]: $, [y]: [Oa, Ia] }];
|
||
var Qi = [{ [m]: G, [y]: [ke, "resourceId[1]"], [M]: zr }, { [m]: $e, [y]: [{ [m]: $, [y]: [jr, sn] }] }];
|
||
var Bp = [ke, "resourceId[1]"];
|
||
var Xn = [{ [m]: $e, [y]: [{ [m]: $, [y]: [{ [m]: G, [y]: [ke, "region"] }, sn] }] }];
|
||
var Yi = [{ [m]: $e, [y]: [{ [m]: Te, [y]: [{ [m]: G, [y]: [ke, "resourceId[2]"] }] }] }];
|
||
var Ip = [ke, "resourceId[2]"];
|
||
var Qn = [{ [m]: tn, [y]: [{ [m]: G, [y]: [ke, "region"] }], [M]: "bucketPartition" }];
|
||
var Ji = [{ [m]: $, [y]: [Da, { [m]: G, [y]: [{ [B]: "partitionResult" }, Y] }] }];
|
||
var Yn = [{ [m]: at, [y]: [{ [m]: G, [y]: [ke, "region"] }, true] }];
|
||
var Jn = [{ [m]: at, [y]: [Ua, false] }];
|
||
var eo = [{ [m]: at, [y]: [jr, false] }];
|
||
var to = [{ [m]: at, [y]: [{ [B]: "Region" }, true] }];
|
||
var _p = { version: "1.0", parameters: { Bucket: ct, Region: ct, UseFIPS: ut, UseDualStack: ut, Endpoint: ct, ForcePathStyle: ut, Accelerate: ut, UseGlobalEndpoint: ut, UseObjectLambdaEndpoint: vt, Key: ct, Prefix: ct, CopySource: ct, DisableAccessPoints: vt, DisableMultiRegionAccessPoints: ut, UseArnRegion: vt, UseS3ExpressControlEndpoint: vt, DisableS3ExpressSessionAuth: vt }, [w]: [{ [h]: [{ [m]: Te, [y]: Kn }], [w]: [{ [h]: [_e, W], error: "Accelerate cannot be used with FIPS", [d]: C }, { [h]: [j, X], error: "Cannot set dual-stack in combination with a custom endpoint.", [d]: C }, { [h]: [X, W], error: "A custom endpoint cannot be combined with FIPS", [d]: C }, { [h]: [X, _e], error: "A custom endpoint cannot be combined with S3 Accelerate", [d]: C }, { [h]: [W, Pa, ti], error: "Partition does not support FIPS", [d]: C }, { [h]: [Pt, { [m]: q, [y]: [U, 0, xp, Oe], [M]: Vs }, { [m]: $, [y]: [{ [B]: Vs }, "--x-s3"] }], [w]: [ni, ri, si, { [h]: [oi, ai], [w]: [{ [h]: Ie, [w]: [{ [h]: [Ma, N], [w]: [{ [h]: lt, endpoint: { [v]: "https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: tt, [k]: P }, [d]: x }, { endpoint: { [v]: "https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: tt, [k]: P }, [d]: x }], [d]: b }], [d]: b }], [d]: b }, { [h]: Oi, [w]: [{ [h]: Ie, [w]: [{ [h]: Fi, [w]: [{ [h]: Di, [w]: De, [d]: b }, { [h]: Ui, [w]: De, [d]: b }, { [h]: $i, [w]: De, [d]: b }, { [h]: Li, [w]: De, [d]: b }, { [h]: Hi, [w]: De, [d]: b }, Ht], [d]: b }, { [h]: Di, [w]: Ue, [d]: b }, { [h]: Ui, [w]: Ue, [d]: b }, { [h]: $i, [w]: Ue, [d]: b }, { [h]: Li, [w]: Ue, [d]: b }, { [h]: Hi, [w]: Ue, [d]: b }, Ht], [d]: b }], [d]: b }, ii], [d]: b }, { [h]: [Pt, { [m]: q, [y]: zi, [M]: Ws }, { [m]: $, [y]: [{ [B]: Ws }, "--xa-s3"] }], [w]: [ni, ri, si, { [h]: Oi, [w]: [{ [h]: Ie, [w]: [{ [h]: Fi, [w]: [{ [h]: ji, [w]: De, [d]: b }, { [h]: qi, [w]: De, [d]: b }, { [h]: Vi, [w]: De, [d]: b }, { [h]: Wi, [w]: De, [d]: b }, { [h]: Ki, [w]: De, [d]: b }, Ht], [d]: b }, { [h]: ji, [w]: Ue, [d]: b }, { [h]: qi, [w]: Ue, [d]: b }, { [h]: Vi, [w]: Ue, [d]: b }, { [h]: Wi, [w]: Ue, [d]: b }, { [h]: Ki, [w]: Ue, [d]: b }, Ht], [d]: b }], [d]: b }, ii], [d]: b }, { [h]: [ci, oi, ai], [w]: [{ [h]: Ie, [w]: [{ [h]: dt, endpoint: { [v]: Vt, [R]: tt, [k]: P }, [d]: x }, { [h]: lt, endpoint: { [v]: "https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}", [R]: tt, [k]: P }, [d]: x }, { endpoint: { [v]: "https://s3express-control.{Region}.{partitionResult#dnsSuffix}", [R]: tt, [k]: P }, [d]: x }], [d]: b }], [d]: b }, { [h]: [Pt, { [m]: q, [y]: [U, 49, 50, Oe], [M]: Aa }, { [m]: q, [y]: [U, 8, 12, Oe], [M]: Ca }, { [m]: q, [y]: zi, [M]: Ks }, { [m]: q, [y]: [U, 32, 49, Oe], [M]: Er }, { [m]: tn, [y]: Kn, [M]: "regionPartition" }, { [m]: $, [y]: [{ [B]: Ks }, "--op-s3"] }], [w]: [{ [h]: Gi, [w]: [{ [h]: [{ [m]: $, [y]: [ui, "e"] }], [w]: [{ [h]: Zi, [w]: [di, { [h]: dt, endpoint: { [v]: "https://{Bucket}.ec2.{url#authority}", [R]: zt, [k]: P }, [d]: x }], [d]: b }, { endpoint: { [v]: "https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}", [R]: zt, [k]: P }, [d]: x }], [d]: b }, { [h]: [{ [m]: $, [y]: [ui, "o"] }], [w]: [{ [h]: Zi, [w]: [di, { [h]: dt, endpoint: { [v]: "https://{Bucket}.op-{outpostId}.{url#authority}", [R]: zt, [k]: P }, [d]: x }], [d]: b }, { endpoint: { [v]: "https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}", [R]: zt, [k]: P }, [d]: x }], [d]: b }, { error: 'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"', [d]: C }], [d]: b }, { error: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.", [d]: C }], [d]: b }, { [h]: kp, [w]: [{ [h]: [X, { [m]: $e, [y]: [{ [m]: Te, [y]: [{ [m]: $r, [y]: Cp }] }] }], error: "Custom endpoint `{Endpoint}` was not a valid URI", [d]: C }, { [h]: [Mn, Fa], [w]: [{ [h]: Ie, [w]: [{ [h]: Xi, [w]: [{ [h]: [_e, ti], error: "S3 Accelerate cannot be used in this region", [d]: C }, { [h]: [j, W, te, N, ie], endpoint: { [v]: "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [j, W, te, N, D, ae], [w]: [{ endpoint: li, [d]: x }], [d]: b }, { [h]: [j, W, te, N, D, ce], endpoint: li, [d]: x }, { [h]: [O, W, te, N, ie], endpoint: { [v]: "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [O, W, te, N, D, ae], [w]: [{ endpoint: fi, [d]: x }], [d]: b }, { [h]: [O, W, te, N, D, ce], endpoint: fi, [d]: x }, { [h]: [j, F, _e, N, ie], endpoint: { [v]: "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [j, F, _e, N, D, ae], [w]: [{ endpoint: hi, [d]: x }], [d]: b }, { [h]: [j, F, _e, N, D, ce], endpoint: hi, [d]: x }, { [h]: [j, F, te, N, ie], endpoint: { [v]: "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [j, F, te, N, D, ae], [w]: [{ endpoint: pi, [d]: x }], [d]: b }, { [h]: [j, F, te, N, D, ce], endpoint: pi, [d]: x }, { [h]: [O, F, te, X, Se, Nn, ie], endpoint: { [v]: va, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, F, te, X, Se, Fn, ie], endpoint: { [v]: rn, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, F, te, X, Se, Nn, D, ae], [w]: [{ [h]: He, endpoint: On, [d]: x }, { endpoint: On, [d]: x }], [d]: b }, { [h]: [O, F, te, X, Se, Fn, D, ae], [w]: [{ [h]: He, endpoint: xr, [d]: x }, gi], [d]: b }, { [h]: [O, F, te, X, Se, Nn, D, ce], endpoint: On, [d]: x }, { [h]: [O, F, te, X, Se, Fn, D, ce], endpoint: xr, [d]: x }, { [h]: [O, F, _e, N, ie], endpoint: { [v]: Ra, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, F, _e, N, D, ae], [w]: [{ [h]: He, endpoint: Dn, [d]: x }, { endpoint: Dn, [d]: x }], [d]: b }, { [h]: [O, F, _e, N, D, ce], endpoint: Dn, [d]: x }, { [h]: [O, F, te, N, ie], endpoint: { [v]: Gs, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, F, te, N, D, ae], [w]: [{ [h]: He, endpoint: { [v]: Gs, [R]: re, [k]: P }, [d]: x }, { endpoint: mi, [d]: x }], [d]: b }, { [h]: [O, F, te, N, D, ce], endpoint: mi, [d]: x }], [d]: b }, jt], [d]: b }], [d]: b }, { [h]: [X, Se, { [m]: $, [y]: [{ [m]: G, [y]: [Na, "scheme"] }, "http"] }, { [m]: nn, [y]: [U, Oe] }, Mn, F, O, te], [w]: [{ [h]: Ie, [w]: [{ [h]: Xi, [w]: [gi], [d]: b }, jt], [d]: b }], [d]: b }, { [h]: [Mn, { [m]: ka, [y]: vp, [M]: Ta }], [w]: [{ [h]: [{ [m]: G, [y]: [ke, "resourceId[0]"], [M]: Ba }, { [m]: $e, [y]: [{ [m]: $, [y]: [Oa, sn] }] }], [w]: [{ [h]: [{ [m]: $, [y]: [Un, Hr] }], [w]: [{ [h]: Zn, [w]: [{ [h]: Qi, [w]: [yi, wi, { [h]: Xn, [w]: [bi, { [h]: Yi, [w]: [$n, { [h]: Qn, [w]: [{ [h]: Ie, [w]: [{ [h]: Ji, [w]: [{ [h]: Yn, [w]: [{ [h]: [{ [m]: $, [y]: [Ua, sn] }], error: "Invalid ARN: Missing account id", [d]: C }, { [h]: Jn, [w]: [{ [h]: eo, [w]: [{ [h]: dt, endpoint: { [v]: Zs, [R]: Ln, [k]: P }, [d]: x }, { [h]: lt, endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Ln, [k]: P }, [d]: x }, { endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Ln, [k]: P }, [d]: x }], [d]: b }, Ei], [d]: b }, Hn], [d]: b }, zn], [d]: b }, jn], [d]: b }], [d]: b }], [d]: b }, xi], [d]: b }, { error: "Invalid ARN: bucket ARN is missing a region", [d]: C }], [d]: b }, Si], [d]: b }, { error: "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`", [d]: C }], [d]: b }, { [h]: Zn, [w]: [{ [h]: Qi, [w]: [{ [h]: Xn, [w]: [{ [h]: Zn, [w]: [{ [h]: Xn, [w]: [bi, { [h]: Yi, [w]: [$n, { [h]: Qn, [w]: [{ [h]: Ie, [w]: [{ [h]: [{ [m]: $, [y]: [Da, "{partitionResult#name}"] }], [w]: [{ [h]: Yn, [w]: [{ [h]: [{ [m]: $, [y]: [Un, bt] }], [w]: [{ [h]: Jn, [w]: [{ [h]: eo, [w]: [{ [h]: Gn, error: "Access Points do not support S3 Accelerate", [d]: C }, { [h]: [W, j], endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Rt, [k]: P }, [d]: x }, { [h]: [W, O], endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Rt, [k]: P }, [d]: x }, { [h]: [F, j], endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Rt, [k]: P }, [d]: x }, { [h]: [F, O, X, Se], endpoint: { [v]: Zs, [R]: Rt, [k]: P }, [d]: x }, { [h]: [F, O], endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Rt, [k]: P }, [d]: x }], [d]: b }, Ei], [d]: b }, Hn], [d]: b }, { error: "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}", [d]: C }], [d]: b }, zn], [d]: b }, jn], [d]: b }], [d]: b }], [d]: b }, xi], [d]: b }], [d]: b }], [d]: b }, { [h]: [{ [m]: at, [y]: [jr, Oe] }], [w]: [{ [h]: Mi, error: "S3 MRAP does not support dual-stack", [d]: C }, { [h]: lt, error: "S3 MRAP does not support FIPS", [d]: C }, { [h]: Gn, error: "S3 MRAP does not support S3 Accelerate", [d]: C }, { [h]: [{ [m]: J, [y]: [{ [B]: "DisableMultiRegionAccessPoints" }, Oe] }], error: "Invalid configuration: Multi-Region Access Point ARNs are disabled.", [d]: C }, { [h]: [{ [m]: tn, [y]: Kn, [M]: Xs }], [w]: [{ [h]: [{ [m]: $, [y]: [{ [m]: G, [y]: [{ [B]: Xs }, Y] }, { [m]: G, [y]: [ke, "partition"] }] }], [w]: [{ endpoint: { [v]: "https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}", [R]: { [be]: [{ [ue]: Oe, name: Lr, [de]: bt, [Ur]: Tp }] }, [k]: P }, [d]: x }], [d]: b }, { error: "Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`", [d]: C }], [d]: b }], [d]: b }, { error: "Invalid Access Point Name", [d]: C }], [d]: b }, Si], [d]: b }, { [h]: [{ [m]: $, [y]: [Un, Dt] }], [w]: [{ [h]: Mi, error: "S3 Outposts does not support Dual-stack", [d]: C }, { [h]: lt, error: "S3 Outposts does not support FIPS", [d]: C }, { [h]: Gn, error: "S3 Outposts does not support S3 Accelerate", [d]: C }, { [h]: [{ [m]: Te, [y]: [{ [m]: G, [y]: [ke, "resourceId[4]"] }] }], error: "Invalid Arn: Outpost Access Point ARN contains sub resources", [d]: C }, { [h]: [{ [m]: G, [y]: Bp, [M]: Er }], [w]: [{ [h]: Gi, [w]: [$n, { [h]: Qn, [w]: [{ [h]: Ie, [w]: [{ [h]: Ji, [w]: [{ [h]: Yn, [w]: [{ [h]: Jn, [w]: [{ [h]: [{ [m]: G, [y]: Ip, [M]: Qs }], [w]: [{ [h]: [{ [m]: G, [y]: [ke, "resourceId[3]"], [M]: zr }], [w]: [{ [h]: [{ [m]: $, [y]: [{ [B]: Qs }, Ia] }], [w]: [{ [h]: dt, endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}", [R]: Ai, [k]: P }, [d]: x }, { endpoint: { [v]: "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", [R]: Ai, [k]: P }, [d]: x }], [d]: b }, { error: "Expected an outpost type `accesspoint`, found {outpostType}", [d]: C }], [d]: b }, { error: "Invalid ARN: expected an access point name", [d]: C }], [d]: b }, { error: "Invalid ARN: Expected a 4-component resource", [d]: C }], [d]: b }, Hn], [d]: b }, zn], [d]: b }, jn], [d]: b }], [d]: b }], [d]: b }, { error: "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`", [d]: C }], [d]: b }, { error: "Invalid ARN: The Outpost Id was not set", [d]: C }], [d]: b }, { error: "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})", [d]: C }], [d]: b }, { error: "Invalid ARN: No ARN type specified", [d]: C }], [d]: b }, { [h]: [{ [m]: q, [y]: [U, 0, 4, Sp], [M]: Ys }, { [m]: $, [y]: [{ [B]: Ys }, "arn:"] }, { [m]: $e, [y]: [{ [m]: Te, [y]: [Ci] }] }], error: "Invalid ARN: `{Bucket}` was not a valid ARN", [d]: C }, { [h]: [{ [m]: J, [y]: [Ap, Oe] }, Ci], error: "Path-style addressing cannot be used with ARN buckets", [d]: C }, { [h]: Rp, [w]: [{ [h]: Ie, [w]: [{ [h]: [te], [w]: [{ [h]: [j, N, W, ie], endpoint: { [v]: "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: oe, [k]: P }, [d]: x }, { [h]: [j, N, W, D, ae], [w]: [{ endpoint: vi, [d]: x }], [d]: b }, { [h]: [j, N, W, D, ce], endpoint: vi, [d]: x }, { [h]: [O, N, W, ie], endpoint: { [v]: "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: oe, [k]: P }, [d]: x }, { [h]: [O, N, W, D, ae], [w]: [{ endpoint: Ri, [d]: x }], [d]: b }, { [h]: [O, N, W, D, ce], endpoint: Ri, [d]: x }, { [h]: [j, N, F, ie], endpoint: { [v]: "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", [R]: oe, [k]: P }, [d]: x }, { [h]: [j, N, F, D, ae], [w]: [{ endpoint: ki, [d]: x }], [d]: b }, { [h]: [j, N, F, D, ce], endpoint: ki, [d]: x }, { [h]: [O, X, Se, F, ie], endpoint: { [v]: _a, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, X, Se, F, D, ae], [w]: [{ [h]: He, endpoint: qn, [d]: x }, { endpoint: qn, [d]: x }], [d]: b }, { [h]: [O, X, Se, F, D, ce], endpoint: qn, [d]: x }, { [h]: [O, N, F, ie], endpoint: { [v]: Js, [R]: oe, [k]: P }, [d]: x }, { [h]: [O, N, F, D, ae], [w]: [{ [h]: He, endpoint: { [v]: Js, [R]: re, [k]: P }, [d]: x }, { endpoint: Ti, [d]: x }], [d]: b }, { [h]: [O, N, F, D, ce], endpoint: Ti, [d]: x }], [d]: b }, { error: "Path-style addressing cannot be used with S3 Accelerate", [d]: C }], [d]: b }], [d]: b }], [d]: b }, { [h]: [{ [m]: Te, [y]: [Bi] }, { [m]: J, [y]: [Bi, Oe] }], [w]: [{ [h]: Ie, [w]: [{ [h]: to, [w]: [yi, wi, { [h]: dt, endpoint: { [v]: Vt, [R]: Vn, [k]: P }, [d]: x }, { [h]: lt, endpoint: { [v]: "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", [R]: Vn, [k]: P }, [d]: x }, { endpoint: { [v]: "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", [R]: Vn, [k]: P }, [d]: x }], [d]: b }, jt], [d]: b }], [d]: b }, { [h]: [ci], [w]: [{ [h]: Ie, [w]: [{ [h]: to, [w]: [{ [h]: [W, j, N, ie], endpoint: { [v]: "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [W, j, N, D, ae], [w]: [{ endpoint: Ii, [d]: x }], [d]: b }, { [h]: [W, j, N, D, ce], endpoint: Ii, [d]: x }, { [h]: [W, O, N, ie], endpoint: { [v]: "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [W, O, N, D, ae], [w]: [{ endpoint: _i, [d]: x }], [d]: b }, { [h]: [W, O, N, D, ce], endpoint: _i, [d]: x }, { [h]: [F, j, N, ie], endpoint: { [v]: "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", [R]: oe, [k]: P }, [d]: x }, { [h]: [F, j, N, D, ae], [w]: [{ endpoint: Pi, [d]: x }], [d]: b }, { [h]: [F, j, N, D, ce], endpoint: Pi, [d]: x }, { [h]: [F, O, X, Se, ie], endpoint: { [v]: Vt, [R]: oe, [k]: P }, [d]: x }, { [h]: [F, O, X, Se, D, ae], [w]: [{ [h]: He, endpoint: Wn, [d]: x }, { endpoint: Wn, [d]: x }], [d]: b }, { [h]: [F, O, X, Se, D, ce], endpoint: Wn, [d]: x }, { [h]: [F, O, N, ie], endpoint: { [v]: ei, [R]: oe, [k]: P }, [d]: x }, { [h]: [F, O, N, D, ae], [w]: [{ [h]: He, endpoint: { [v]: ei, [R]: re, [k]: P }, [d]: x }, { endpoint: Ni, [d]: x }], [d]: b }, { [h]: [F, O, N, D, ce], endpoint: Ni, [d]: x }], [d]: b }, jt], [d]: b }], [d]: b }], [d]: b }, { error: "A region must be set when sending requests to S3.", [d]: C }] };
|
||
var Pp = _p;
|
||
var Np = new zf({
|
||
size: 50,
|
||
params: [
|
||
"Accelerate",
|
||
"Bucket",
|
||
"DisableAccessPoints",
|
||
"DisableMultiRegionAccessPoints",
|
||
"DisableS3ExpressSessionAuth",
|
||
"Endpoint",
|
||
"ForcePathStyle",
|
||
"Region",
|
||
"UseArnRegion",
|
||
"UseDualStack",
|
||
"UseFIPS",
|
||
"UseGlobalEndpoint",
|
||
"UseObjectLambdaEndpoint",
|
||
"UseS3ExpressControlEndpoint"
|
||
]
|
||
});
|
||
var $a = (e, t = {}) => Np.get(e, () => ah(Pp, {
|
||
endpointParams: e,
|
||
logger: t.logger
|
||
}));
|
||
Jt.aws = ha;
|
||
var Mp = (e) => async (t, n, r) => {
|
||
var a, c, u;
|
||
if (!r)
|
||
throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");
|
||
const s = await e(t, n, r), i = (u = (c = (a = St(n)) == null ? void 0 : a.commandInstance) == null ? void 0 : c.constructor) == null ? void 0 : u.getEndpointParameterInstructions;
|
||
if (!i)
|
||
throw new Error(`getEndpointParameterInstructions() is not defined on \`${n.commandName}\``);
|
||
const o = await ya(r, { getEndpointParameterInstructions: i }, t);
|
||
return Object.assign(s, o);
|
||
};
|
||
var Fp = async (e, t, n) => ({
|
||
operation: St(t).operation,
|
||
region: await Ne(e.region)() || (() => {
|
||
throw new Error("expected `region` to be configured for `aws.auth#sigv4`");
|
||
})()
|
||
});
|
||
var Op = Mp(Fp);
|
||
function La(e) {
|
||
return {
|
||
schemeId: "aws.auth#sigv4",
|
||
signingProperties: {
|
||
name: "s3",
|
||
region: e.region
|
||
},
|
||
propertiesExtractor: (t, n) => ({
|
||
signingProperties: {
|
||
config: t,
|
||
context: n
|
||
}
|
||
})
|
||
};
|
||
}
|
||
function Ha(e) {
|
||
return {
|
||
schemeId: "aws.auth#sigv4a",
|
||
signingProperties: {
|
||
name: "s3",
|
||
region: e.region
|
||
},
|
||
propertiesExtractor: (t, n) => ({
|
||
signingProperties: {
|
||
config: t,
|
||
context: n
|
||
}
|
||
})
|
||
};
|
||
}
|
||
var Dp = (e, t, n) => (s) => {
|
||
var c;
|
||
const o = (c = e(s).properties) == null ? void 0 : c.authSchemes;
|
||
if (!o)
|
||
return t(s);
|
||
const a = [];
|
||
for (const u of o) {
|
||
const { name: l, properties: f = {}, ...p } = u, g = l.toLowerCase();
|
||
let S;
|
||
if (g === "sigv4a") {
|
||
S = "aws.auth#sigv4a";
|
||
const I = o.find((L) => {
|
||
const H = L.name.toLowerCase();
|
||
return H !== "sigv4a" && H.startsWith("sigv4");
|
||
});
|
||
if (Sa.sigv4aDependency() === "none" && I)
|
||
continue;
|
||
} else if (g.startsWith("sigv4"))
|
||
S = "aws.auth#sigv4";
|
||
else
|
||
throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${g}\``);
|
||
const T = n[S];
|
||
if (!T)
|
||
throw new Error(`Could not find HttpAuthOption create function for \`${S}\``);
|
||
const A = T(s);
|
||
A.schemeId = S, A.signingProperties = { ...A.signingProperties || {}, ...p, ...f }, a.push(A);
|
||
}
|
||
return a;
|
||
};
|
||
var Up = (e) => {
|
||
const t = [];
|
||
switch (e.operation) {
|
||
default:
|
||
t.push(La(e)), t.push(Ha(e));
|
||
}
|
||
return t;
|
||
};
|
||
var $p = Dp($a, Up, {
|
||
"aws.auth#sigv4": La,
|
||
"aws.auth#sigv4a": Ha
|
||
});
|
||
var Lp = (e) => {
|
||
const t = ad(e), n = Fu(t);
|
||
return Object.assign(n, {
|
||
authSchemePreference: Ne(e.authSchemePreference ?? [])
|
||
});
|
||
};
|
||
var Hp = (e) => Object.assign(e, {
|
||
useFipsEndpoint: e.useFipsEndpoint ?? false,
|
||
useDualstackEndpoint: e.useDualstackEndpoint ?? false,
|
||
forcePathStyle: e.forcePathStyle ?? false,
|
||
useAccelerateEndpoint: e.useAccelerateEndpoint ?? false,
|
||
useGlobalEndpoint: e.useGlobalEndpoint ?? false,
|
||
disableMultiregionAccessPoints: e.disableMultiregionAccessPoints ?? false,
|
||
defaultSigningName: "s3"
|
||
});
|
||
var za = {
|
||
ForcePathStyle: { type: "clientContextParams", name: "forcePathStyle" },
|
||
UseArnRegion: { type: "clientContextParams", name: "useArnRegion" },
|
||
DisableMultiRegionAccessPoints: { type: "clientContextParams", name: "disableMultiregionAccessPoints" },
|
||
Accelerate: { type: "clientContextParams", name: "useAccelerateEndpoint" },
|
||
DisableS3ExpressSessionAuth: { type: "clientContextParams", name: "disableS3ExpressSessionAuth" },
|
||
UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" },
|
||
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
|
||
Endpoint: { type: "builtInParams", name: "endpoint" },
|
||
Region: { type: "builtInParams", name: "region" },
|
||
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }
|
||
};
|
||
var fe = class _fe extends ft {
|
||
constructor(t) {
|
||
super(t), Object.setPrototypeOf(this, _fe.prototype);
|
||
}
|
||
};
|
||
var qr = class _qr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "NoSuchUpload",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "NoSuchUpload");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _qr.prototype);
|
||
}
|
||
};
|
||
var Vr = class _Vr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "ObjectNotInActiveTierError",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "ObjectNotInActiveTierError");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Vr.prototype);
|
||
}
|
||
};
|
||
var Wr = class _Wr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "BucketAlreadyExists",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "BucketAlreadyExists");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Wr.prototype);
|
||
}
|
||
};
|
||
var Kr = class _Kr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "BucketAlreadyOwnedByYou",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "BucketAlreadyOwnedByYou");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Kr.prototype);
|
||
}
|
||
};
|
||
var Gr = class _Gr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "NoSuchBucket",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "NoSuchBucket");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Gr.prototype);
|
||
}
|
||
};
|
||
var no;
|
||
(function(e) {
|
||
e.visit = (t, n) => t.Prefix !== void 0 ? n.Prefix(t.Prefix) : t.Tag !== void 0 ? n.Tag(t.Tag) : t.And !== void 0 ? n.And(t.And) : n._(t.$unknown[0], t.$unknown[1]);
|
||
})(no || (no = {}));
|
||
var ro;
|
||
(function(e) {
|
||
e.visit = (t, n) => t.Prefix !== void 0 ? n.Prefix(t.Prefix) : t.Tag !== void 0 ? n.Tag(t.Tag) : t.AccessPointArn !== void 0 ? n.AccessPointArn(t.AccessPointArn) : t.And !== void 0 ? n.And(t.And) : n._(t.$unknown[0], t.$unknown[1]);
|
||
})(ro || (ro = {}));
|
||
var Zr = class _Zr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "InvalidObjectState",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "InvalidObjectState");
|
||
_(this, "$fault", "client");
|
||
_(this, "StorageClass");
|
||
_(this, "AccessTier");
|
||
Object.setPrototypeOf(this, _Zr.prototype), this.StorageClass = n.StorageClass, this.AccessTier = n.AccessTier;
|
||
}
|
||
};
|
||
var Xr = class _Xr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "NoSuchKey",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "NoSuchKey");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Xr.prototype);
|
||
}
|
||
};
|
||
var Qr = class _Qr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "NotFound",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "NotFound");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Qr.prototype);
|
||
}
|
||
};
|
||
var zp = (e) => ({
|
||
...e,
|
||
...e.SecretAccessKey && { SecretAccessKey: Me },
|
||
...e.SessionToken && { SessionToken: Me }
|
||
});
|
||
var jp = (e) => ({
|
||
...e,
|
||
...e.SSEKMSKeyId && { SSEKMSKeyId: Me },
|
||
...e.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: Me },
|
||
...e.Credentials && { Credentials: zp(e.Credentials) }
|
||
});
|
||
var qp = (e) => ({
|
||
...e,
|
||
...e.SSEKMSKeyId && { SSEKMSKeyId: Me },
|
||
...e.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: Me }
|
||
});
|
||
var Yr = class _Yr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "EncryptionTypeMismatch",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "EncryptionTypeMismatch");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Yr.prototype);
|
||
}
|
||
};
|
||
var Jr = class _Jr extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "InvalidRequest",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "InvalidRequest");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _Jr.prototype);
|
||
}
|
||
};
|
||
var es = class _es extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "InvalidWriteOffset",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "InvalidWriteOffset");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _es.prototype);
|
||
}
|
||
};
|
||
var ts = class _ts extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "TooManyParts",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "TooManyParts");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _ts.prototype);
|
||
}
|
||
};
|
||
var ns = class _ns extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "IdempotencyParameterMismatch",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "IdempotencyParameterMismatch");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _ns.prototype);
|
||
}
|
||
};
|
||
var rs = class _rs extends fe {
|
||
constructor(n) {
|
||
super({
|
||
name: "ObjectAlreadyInActiveTierError",
|
||
$fault: "client",
|
||
...n
|
||
});
|
||
_(this, "name", "ObjectAlreadyInActiveTierError");
|
||
_(this, "$fault", "client");
|
||
Object.setPrototypeOf(this, _rs.prototype);
|
||
}
|
||
};
|
||
var so;
|
||
(function(e) {
|
||
e.visit = (t, n) => t.Records !== void 0 ? n.Records(t.Records) : t.Stats !== void 0 ? n.Stats(t.Stats) : t.Progress !== void 0 ? n.Progress(t.Progress) : t.Cont !== void 0 ? n.Cont(t.Cont) : t.End !== void 0 ? n.End(t.End) : n._(t.$unknown[0], t.$unknown[1]);
|
||
})(so || (so = {}));
|
||
var Vp = (e) => ({
|
||
...e,
|
||
...e.SSEKMSKeyId && { SSEKMSKeyId: Me },
|
||
...e.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: Me }
|
||
});
|
||
var Wp = (e) => ({
|
||
...e,
|
||
...e.SSECustomerKey && { SSECustomerKey: Me },
|
||
...e.SSEKMSKeyId && { SSEKMSKeyId: Me },
|
||
...e.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: Me }
|
||
});
|
||
var Kp = async (e, t) => {
|
||
const n = Fo(e, t), r = ee({}, Ve, {
|
||
[Jg]: e[Mg],
|
||
[gn]: e[fn],
|
||
[mn]: e[pn],
|
||
[yn]: e[hn],
|
||
[xt]: [() => Ve(e[Et]), () => e[Et].toString()]
|
||
});
|
||
n.bp("/"), n.p("Bucket", () => e.Bucket, "{Bucket}", false);
|
||
const s = ee({
|
||
[Qg]: [, ""]
|
||
});
|
||
let i;
|
||
return n.m("GET").h(r).q(s).b(i), n.build();
|
||
};
|
||
var Gp = async (e, t) => {
|
||
const n = Fo(e, t), r = ee({}, Ve, {
|
||
...e.Metadata !== void 0 && Object.keys(e.Metadata).reduce((a, c) => (a[`x-amz-meta-${c.toLowerCase()}`] = e.Metadata[c], a), {}),
|
||
[Wg]: e[xg] || "application/octet-stream",
|
||
[Yg]: e[hg],
|
||
[Lg]: e[gg],
|
||
[Hg]: e[mg],
|
||
[zg]: e[yg],
|
||
[jg]: e[wg],
|
||
[qg]: [() => Ve(e[io]), () => e[io].toString()],
|
||
[Vg]: e[bg],
|
||
[hm]: e[pg],
|
||
[Qa]: e[qa],
|
||
[Ya]: e[Va],
|
||
[Ja]: e[Wa],
|
||
[ec]: e[Ka],
|
||
[tc]: e[Ga],
|
||
[Kg]: [() => Ve(e[oo]), () => yu(e[oo]).toString()],
|
||
[Zg]: e[Tg],
|
||
[Xg]: e[Bg],
|
||
[rm]: e[Cg],
|
||
[sm]: e[vg],
|
||
[im]: e[Rg],
|
||
[om]: e[kg],
|
||
[ym]: [() => Ve(e[co]), () => e[co].toString()],
|
||
[gn]: e[fn],
|
||
[fm]: e[Kt],
|
||
[wm]: e[$g],
|
||
[nc]: e[Za],
|
||
[pm]: e[Fg],
|
||
[rc]: e[Xa],
|
||
[mn]: e[pn],
|
||
[yn]: e[hn],
|
||
[xt]: [() => Ve(e[Et]), () => e[Et].toString()],
|
||
[lm]: e[Ng],
|
||
[gm]: e[Dg],
|
||
[cm]: e[_g],
|
||
[um]: [() => Ve(e[ao]), () => kd(e[ao]).toString()],
|
||
[am]: e[Ig],
|
||
[nm]: e[Sg]
|
||
});
|
||
n.bp("/{Key+}"), n.p("Bucket", () => e.Bucket, "{Bucket}", false), n.p("Key", () => e.Key, "{Key+}", true);
|
||
const s = ee({
|
||
[bm]: [, "PutObject"]
|
||
});
|
||
let i, o;
|
||
return e.Body !== void 0 && (o = e.Body, i = o), n.m("PUT").h(r).q(s).b(i), n.build();
|
||
};
|
||
var Zp = async (e, t) => {
|
||
if (e.statusCode !== 200 && e.statusCode >= 300)
|
||
return ja(e, t);
|
||
const n = ee({
|
||
$metadata: Ee(e),
|
||
[fn]: [, e.headers[gn]],
|
||
[pn]: [, e.headers[mn]],
|
||
[hn]: [, e.headers[yn]],
|
||
[Et]: [() => e.headers[xt] !== void 0, () => To(e.headers[xt])]
|
||
}), r = Io(du(await Zo(e.body, t)), "body");
|
||
return r[nr] != null && (n[nr] = fg(r[nr])), n;
|
||
};
|
||
var Xp = async (e, t) => {
|
||
if (e.statusCode !== 200 && e.statusCode >= 300)
|
||
return ja(e, t);
|
||
const n = ee({
|
||
$metadata: Ee(e),
|
||
[Wt]: [, e.headers[tm]],
|
||
[Ag]: [, e.headers[Gg]],
|
||
[qa]: [, e.headers[Qa]],
|
||
[Va]: [, e.headers[Ya]],
|
||
[Wa]: [, e.headers[Ja]],
|
||
[Ka]: [, e.headers[ec]],
|
||
[Ga]: [, e.headers[tc]],
|
||
[Eg]: [, e.headers[em]],
|
||
[fn]: [, e.headers[gn]],
|
||
[Ug]: [, e.headers[mm]],
|
||
[Za]: [, e.headers[nc]],
|
||
[Xa]: [, e.headers[rc]],
|
||
[pn]: [, e.headers[mn]],
|
||
[hn]: [, e.headers[yn]],
|
||
[Et]: [() => e.headers[xt] !== void 0, () => To(e.headers[xt])],
|
||
[Og]: [() => e.headers[uo] !== void 0, () => hu(e.headers[uo])],
|
||
[Pg]: [, e.headers[dm]]
|
||
});
|
||
return await ko(e.body, t), n;
|
||
};
|
||
var ja = async (e, t) => {
|
||
const n = {
|
||
...e,
|
||
body: await Sl(e.body, t)
|
||
}, r = Al(e, n.body);
|
||
switch (r) {
|
||
case "NoSuchUpload":
|
||
case "com.amazonaws.s3#NoSuchUpload":
|
||
throw await ag(n);
|
||
case "ObjectNotInActiveTierError":
|
||
case "com.amazonaws.s3#ObjectNotInActiveTierError":
|
||
throw await dg(n);
|
||
case "BucketAlreadyExists":
|
||
case "com.amazonaws.s3#BucketAlreadyExists":
|
||
throw await Yp(n);
|
||
case "BucketAlreadyOwnedByYou":
|
||
case "com.amazonaws.s3#BucketAlreadyOwnedByYou":
|
||
throw await Jp(n);
|
||
case "NoSuchBucket":
|
||
case "com.amazonaws.s3#NoSuchBucket":
|
||
throw await ig(n);
|
||
case "InvalidObjectState":
|
||
case "com.amazonaws.s3#InvalidObjectState":
|
||
throw await ng(n);
|
||
case "NoSuchKey":
|
||
case "com.amazonaws.s3#NoSuchKey":
|
||
throw await og(n);
|
||
case "NotFound":
|
||
case "com.amazonaws.s3#NotFound":
|
||
throw await cg(n);
|
||
case "EncryptionTypeMismatch":
|
||
case "com.amazonaws.s3#EncryptionTypeMismatch":
|
||
throw await eg(n);
|
||
case "InvalidRequest":
|
||
case "com.amazonaws.s3#InvalidRequest":
|
||
throw await rg(n);
|
||
case "InvalidWriteOffset":
|
||
case "com.amazonaws.s3#InvalidWriteOffset":
|
||
throw await sg(n);
|
||
case "TooManyParts":
|
||
case "com.amazonaws.s3#TooManyParts":
|
||
throw await lg(n);
|
||
case "IdempotencyParameterMismatch":
|
||
case "com.amazonaws.s3#IdempotencyParameterMismatch":
|
||
throw await tg(n);
|
||
case "ObjectAlreadyInActiveTierError":
|
||
case "com.amazonaws.s3#ObjectAlreadyInActiveTierError":
|
||
throw await ug(n);
|
||
default:
|
||
const s = n.body;
|
||
return Qp({
|
||
output: e,
|
||
parsedBody: s,
|
||
errorCode: r
|
||
});
|
||
}
|
||
};
|
||
var Qp = pd(fe);
|
||
var Yp = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Wr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var Jp = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Kr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var eg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Yr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var tg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new ns({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var ng = async (e, t) => {
|
||
const n = ee({}), r = e.body;
|
||
r[tr] != null && (n[tr] = It(r[tr])), r[Kt] != null && (n[Kt] = It(r[Kt]));
|
||
const s = new Zr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(s, e.body);
|
||
};
|
||
var rg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Jr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var sg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new es({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var ig = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Gr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var og = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Xr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var ag = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new qr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var cg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Qr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var ug = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new rs({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var dg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new Vr({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var lg = async (e, t) => {
|
||
const n = ee({});
|
||
e.body;
|
||
const r = new ts({
|
||
$metadata: Ee(e),
|
||
...n
|
||
});
|
||
return ve(r, e.body);
|
||
};
|
||
var fg = (e, t) => {
|
||
const n = {};
|
||
return e[er] != null && (n[er] = It(e[er])), e[rr] != null && (n[rr] = It(e[rr])), e[sr] != null && (n[sr] = It(e[sr])), e[Wt] != null && (n[Wt] = Io(bu(e[Wt]))), n;
|
||
};
|
||
var Ee = (e) => ({
|
||
httpStatusCode: e.statusCode,
|
||
requestId: e.headers["x-amzn-requestid"] ?? e.headers["x-amzn-request-id"] ?? e.headers["x-amz-request-id"],
|
||
extendedRequestId: e.headers["x-amz-id-2"],
|
||
cfId: e.headers["x-amz-cf-id"]
|
||
});
|
||
var hg = "ACL";
|
||
var er = "AccessKeyId";
|
||
var tr = "AccessTier";
|
||
var Et = "BucketKeyEnabled";
|
||
var nr = "Credentials";
|
||
var pg = "ChecksumAlgorithm";
|
||
var gg = "CacheControl";
|
||
var qa = "ChecksumCRC32";
|
||
var Va = "ChecksumCRC32C";
|
||
var Wa = "ChecksumCRC64NVME";
|
||
var mg = "ContentDisposition";
|
||
var yg = "ContentEncoding";
|
||
var wg = "ContentLanguage";
|
||
var io = "ContentLength";
|
||
var bg = "ContentMD5";
|
||
var Ka = "ChecksumSHA1";
|
||
var Ga = "ChecksumSHA256";
|
||
var Eg = "ChecksumType";
|
||
var xg = "ContentType";
|
||
var oo = "Expires";
|
||
var Sg = "ExpectedBucketOwner";
|
||
var Ag = "ETag";
|
||
var Wt = "Expiration";
|
||
var Cg = "GrantFullControl";
|
||
var vg = "GrantRead";
|
||
var Rg = "GrantReadACP";
|
||
var kg = "GrantWriteACP";
|
||
var Tg = "IfMatch";
|
||
var Bg = "IfNoneMatch";
|
||
var Ig = "ObjectLockLegalHoldStatus";
|
||
var _g = "ObjectLockMode";
|
||
var ao = "ObjectLockRetainUntilDate";
|
||
var Pg = "RequestCharged";
|
||
var Ng = "RequestPayer";
|
||
var rr = "SecretAccessKey";
|
||
var Kt = "StorageClass";
|
||
var Mg = "SessionMode";
|
||
var fn = "ServerSideEncryption";
|
||
var Za = "SSECustomerAlgorithm";
|
||
var Fg = "SSECustomerKey";
|
||
var Xa = "SSECustomerKeyMD5";
|
||
var hn = "SSEKMSEncryptionContext";
|
||
var pn = "SSEKMSKeyId";
|
||
var sr = "SessionToken";
|
||
var Og = "Size";
|
||
var Dg = "Tagging";
|
||
var Ug = "VersionId";
|
||
var co = "WriteOffsetBytes";
|
||
var $g = "WebsiteRedirectLocation";
|
||
var Lg = "cache-control";
|
||
var Hg = "content-disposition";
|
||
var zg = "content-encoding";
|
||
var jg = "content-language";
|
||
var qg = "content-length";
|
||
var Vg = "content-md5";
|
||
var Wg = "content-type";
|
||
var Kg = "expires";
|
||
var Gg = "etag";
|
||
var Zg = "if-match";
|
||
var Xg = "if-none-match";
|
||
var Qg = "session";
|
||
var Yg = "x-amz-acl";
|
||
var Qa = "x-amz-checksum-crc32";
|
||
var Ya = "x-amz-checksum-crc32c";
|
||
var Ja = "x-amz-checksum-crc64nvme";
|
||
var ec = "x-amz-checksum-sha1";
|
||
var tc = "x-amz-checksum-sha256";
|
||
var Jg = "x-amz-create-session-mode";
|
||
var em = "x-amz-checksum-type";
|
||
var tm = "x-amz-expiration";
|
||
var nm = "x-amz-expected-bucket-owner";
|
||
var rm = "x-amz-grant-full-control";
|
||
var sm = "x-amz-grant-read";
|
||
var im = "x-amz-grant-read-acp";
|
||
var om = "x-amz-grant-write-acp";
|
||
var am = "x-amz-object-lock-legal-hold";
|
||
var cm = "x-amz-object-lock-mode";
|
||
var um = "x-amz-object-lock-retain-until-date";
|
||
var uo = "x-amz-object-size";
|
||
var dm = "x-amz-request-charged";
|
||
var lm = "x-amz-request-payer";
|
||
var fm = "x-amz-storage-class";
|
||
var hm = "x-amz-sdk-checksum-algorithm";
|
||
var gn = "x-amz-server-side-encryption";
|
||
var mn = "x-amz-server-side-encryption-aws-kms-key-id";
|
||
var xt = "x-amz-server-side-encryption-bucket-key-enabled";
|
||
var yn = "x-amz-server-side-encryption-context";
|
||
var nc = "x-amz-server-side-encryption-customer-algorithm";
|
||
var pm = "x-amz-server-side-encryption-customer-key";
|
||
var rc = "x-amz-server-side-encryption-customer-key-md5";
|
||
var gm = "x-amz-tagging";
|
||
var mm = "x-amz-version-id";
|
||
var ym = "x-amz-write-offset-bytes";
|
||
var wm = "x-amz-website-redirect-location";
|
||
var bm = "x-id";
|
||
var Em = class extends Rr.classBuilder().ep({
|
||
...za,
|
||
DisableS3ExpressSessionAuth: { type: "staticContextParams", value: true },
|
||
Bucket: { type: "contextParams", name: "Bucket" }
|
||
}).m(function(t, n, r, s) {
|
||
return [
|
||
So(r, this.serialize, this.deserialize),
|
||
wa(r, t.getEndpointParameterInstructions()),
|
||
sa(r)
|
||
];
|
||
}).s("AmazonS3", "CreateSession", {}).n("S3Client", "CreateSessionCommand").f(qp, jp).ser(Kp).de(Zp).build() {
|
||
};
|
||
var xm = "@aws-sdk/client-s3";
|
||
var Sm = "AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native";
|
||
var Am = "3.850.0";
|
||
var Cm = {
|
||
build: "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
||
"build:cjs": "node ../../scripts/compilation/inline client-s3",
|
||
"build:es": "tsc -p tsconfig.es.json",
|
||
"build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build",
|
||
"build:types": "tsc -p tsconfig.types.json",
|
||
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
|
||
clean: "rimraf ./dist-* && rimraf *.tsbuildinfo",
|
||
"extract:docs": "api-extractor run --local",
|
||
"generate:client": "node ../../scripts/generate-clients/single-service --solo s3",
|
||
test: "yarn g:vitest run",
|
||
"test:browser": "node ./test/browser-build/esbuild && yarn g:vitest run -c vitest.config.browser.ts",
|
||
"test:browser:watch": "node ./test/browser-build/esbuild && yarn g:vitest watch -c vitest.config.browser.ts",
|
||
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.ts && yarn test:browser",
|
||
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.ts",
|
||
"test:integration": "yarn g:vitest run -c vitest.config.integ.ts",
|
||
"test:integration:watch": "yarn g:vitest watch -c vitest.config.integ.ts",
|
||
"test:watch": "yarn g:vitest watch"
|
||
};
|
||
var vm = "./dist-cjs/index.js";
|
||
var Rm = "./dist-types/index.d.ts";
|
||
var km = "./dist-es/index.js";
|
||
var Tm = false;
|
||
var Bm = {
|
||
"@aws-crypto/sha1-browser": "5.2.0",
|
||
"@aws-crypto/sha256-browser": "5.2.0",
|
||
"@aws-crypto/sha256-js": "5.2.0",
|
||
"@aws-sdk/core": "3.846.0",
|
||
"@aws-sdk/credential-provider-node": "3.848.0",
|
||
"@aws-sdk/middleware-bucket-endpoint": "3.840.0",
|
||
"@aws-sdk/middleware-expect-continue": "3.840.0",
|
||
"@aws-sdk/middleware-flexible-checksums": "3.846.0",
|
||
"@aws-sdk/middleware-host-header": "3.840.0",
|
||
"@aws-sdk/middleware-location-constraint": "3.840.0",
|
||
"@aws-sdk/middleware-logger": "3.840.0",
|
||
"@aws-sdk/middleware-recursion-detection": "3.840.0",
|
||
"@aws-sdk/middleware-sdk-s3": "3.846.0",
|
||
"@aws-sdk/middleware-ssec": "3.840.0",
|
||
"@aws-sdk/middleware-user-agent": "3.848.0",
|
||
"@aws-sdk/region-config-resolver": "3.840.0",
|
||
"@aws-sdk/signature-v4-multi-region": "3.846.0",
|
||
"@aws-sdk/types": "3.840.0",
|
||
"@aws-sdk/util-endpoints": "3.848.0",
|
||
"@aws-sdk/util-user-agent-browser": "3.840.0",
|
||
"@aws-sdk/util-user-agent-node": "3.848.0",
|
||
"@aws-sdk/xml-builder": "3.821.0",
|
||
"@smithy/config-resolver": "^4.1.4",
|
||
"@smithy/core": "^3.7.0",
|
||
"@smithy/eventstream-serde-browser": "^4.0.4",
|
||
"@smithy/eventstream-serde-config-resolver": "^4.1.2",
|
||
"@smithy/eventstream-serde-node": "^4.0.4",
|
||
"@smithy/fetch-http-handler": "^5.1.0",
|
||
"@smithy/hash-blob-browser": "^4.0.4",
|
||
"@smithy/hash-node": "^4.0.4",
|
||
"@smithy/hash-stream-node": "^4.0.4",
|
||
"@smithy/invalid-dependency": "^4.0.4",
|
||
"@smithy/md5-js": "^4.0.4",
|
||
"@smithy/middleware-content-length": "^4.0.4",
|
||
"@smithy/middleware-endpoint": "^4.1.15",
|
||
"@smithy/middleware-retry": "^4.1.16",
|
||
"@smithy/middleware-serde": "^4.0.8",
|
||
"@smithy/middleware-stack": "^4.0.4",
|
||
"@smithy/node-config-provider": "^4.1.3",
|
||
"@smithy/node-http-handler": "^4.1.0",
|
||
"@smithy/protocol-http": "^5.1.2",
|
||
"@smithy/smithy-client": "^4.4.7",
|
||
"@smithy/types": "^4.3.1",
|
||
"@smithy/url-parser": "^4.0.4",
|
||
"@smithy/util-base64": "^4.0.0",
|
||
"@smithy/util-body-length-browser": "^4.0.0",
|
||
"@smithy/util-body-length-node": "^4.0.0",
|
||
"@smithy/util-defaults-mode-browser": "^4.0.23",
|
||
"@smithy/util-defaults-mode-node": "^4.0.23",
|
||
"@smithy/util-endpoints": "^3.0.6",
|
||
"@smithy/util-middleware": "^4.0.4",
|
||
"@smithy/util-retry": "^4.0.6",
|
||
"@smithy/util-stream": "^4.2.3",
|
||
"@smithy/util-utf8": "^4.0.0",
|
||
"@smithy/util-waiter": "^4.0.6",
|
||
"@types/uuid": "^9.0.1",
|
||
tslib: "^2.6.2",
|
||
uuid: "^9.0.1"
|
||
};
|
||
var Im = {
|
||
"@aws-sdk/signature-v4-crt": "3.848.0",
|
||
"@tsconfig/node18": "18.2.4",
|
||
"@types/node": "^18.19.69",
|
||
concurrently: "7.0.0",
|
||
"downlevel-dts": "0.10.1",
|
||
rimraf: "3.0.2",
|
||
typescript: "~5.8.3"
|
||
};
|
||
var _m = {
|
||
node: ">=18.0.0"
|
||
};
|
||
var Pm = {
|
||
"<4.0": {
|
||
"dist-types/*": [
|
||
"dist-types/ts3.4/*"
|
||
]
|
||
}
|
||
};
|
||
var Nm = [
|
||
"dist-*/**"
|
||
];
|
||
var Mm = {
|
||
name: "AWS SDK for JavaScript Team",
|
||
url: "https://aws.amazon.com/javascript/"
|
||
};
|
||
var Fm = "Apache-2.0";
|
||
var Om = {
|
||
"./dist-es/runtimeConfig": "./dist-es/runtimeConfig.browser"
|
||
};
|
||
var Dm = "https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3";
|
||
var Um = {
|
||
type: "git",
|
||
url: "https://github.com/aws/aws-sdk-js-v3.git",
|
||
directory: "clients/client-s3"
|
||
};
|
||
var $m = {
|
||
name: xm,
|
||
description: Sm,
|
||
version: Am,
|
||
scripts: Cm,
|
||
main: vm,
|
||
types: Rm,
|
||
module: km,
|
||
sideEffects: Tm,
|
||
dependencies: Bm,
|
||
devDependencies: Im,
|
||
engines: _m,
|
||
typesVersions: Pm,
|
||
files: Nm,
|
||
author: Mm,
|
||
license: Fm,
|
||
browser: Om,
|
||
"react-native": {
|
||
"./dist-es/runtimeConfig": "./dist-es/runtimeConfig.native"
|
||
},
|
||
homepage: Dm,
|
||
repository: Um
|
||
};
|
||
function lo(e) {
|
||
return typeof e == "string" ? e.length === 0 : e.byteLength === 0;
|
||
}
|
||
var sc = { name: "SHA-1" };
|
||
var fo = {
|
||
name: "HMAC",
|
||
hash: sc
|
||
};
|
||
var Lm = new Uint8Array([
|
||
218,
|
||
57,
|
||
163,
|
||
238,
|
||
94,
|
||
107,
|
||
75,
|
||
13,
|
||
50,
|
||
85,
|
||
191,
|
||
239,
|
||
149,
|
||
96,
|
||
24,
|
||
144,
|
||
175,
|
||
216,
|
||
7,
|
||
9
|
||
]);
|
||
var Hm = {};
|
||
function Ke() {
|
||
return typeof window < "u" ? window : typeof self < "u" ? self : Hm;
|
||
}
|
||
var zm = (
|
||
/** @class */
|
||
function() {
|
||
function e(t) {
|
||
this.toHash = new Uint8Array(0), t !== void 0 && (this.key = new Promise(function(n, r) {
|
||
Ke().crypto.subtle.importKey("raw", ho(t), fo, false, ["sign"]).then(n, r);
|
||
}), this.key.catch(function() {
|
||
}));
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
if (!lo(t)) {
|
||
var n = ho(t), r = new Uint8Array(this.toHash.byteLength + n.byteLength);
|
||
r.set(this.toHash, 0), r.set(n, this.toHash.byteLength), this.toHash = r;
|
||
}
|
||
}, e.prototype.digest = function() {
|
||
var t = this;
|
||
return this.key ? this.key.then(function(n) {
|
||
return Ke().crypto.subtle.sign(fo, n, t.toHash).then(function(r) {
|
||
return new Uint8Array(r);
|
||
});
|
||
}) : lo(this.toHash) ? Promise.resolve(Lm) : Promise.resolve().then(function() {
|
||
return Ke().crypto.subtle.digest(sc, t.toHash);
|
||
}).then(function(n) {
|
||
return Promise.resolve(new Uint8Array(n));
|
||
});
|
||
}, e.prototype.reset = function() {
|
||
this.toHash = new Uint8Array(0);
|
||
}, e;
|
||
}()
|
||
);
|
||
function ho(e) {
|
||
return typeof e == "string" ? Yo(e) : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength / Uint8Array.BYTES_PER_ELEMENT) : new Uint8Array(e);
|
||
}
|
||
var jm = [
|
||
"decrypt",
|
||
"digest",
|
||
"encrypt",
|
||
"exportKey",
|
||
"generateKey",
|
||
"importKey",
|
||
"sign",
|
||
"verify"
|
||
];
|
||
function ic(e) {
|
||
if (qm(e) && typeof e.crypto.subtle == "object") {
|
||
var t = e.crypto.subtle;
|
||
return Vm(t);
|
||
}
|
||
return false;
|
||
}
|
||
function qm(e) {
|
||
if (typeof e == "object" && typeof e.crypto == "object") {
|
||
var t = e.crypto.getRandomValues;
|
||
return typeof t == "function";
|
||
}
|
||
return false;
|
||
}
|
||
function Vm(e) {
|
||
return e && jm.every(function(t) {
|
||
return typeof e[t] == "function";
|
||
});
|
||
}
|
||
var Wm = (
|
||
/** @class */
|
||
function() {
|
||
function e(t) {
|
||
if (ic(Ke()))
|
||
this.hash = new zm(t);
|
||
else
|
||
throw new Error("SHA1 not supported");
|
||
}
|
||
return e.prototype.update = function(t, n) {
|
||
this.hash.update(Ze(t));
|
||
}, e.prototype.digest = function() {
|
||
return this.hash.digest();
|
||
}, e.prototype.reset = function() {
|
||
this.hash.reset();
|
||
}, e;
|
||
}()
|
||
);
|
||
var oc = { name: "SHA-256" };
|
||
var po = {
|
||
name: "HMAC",
|
||
hash: oc
|
||
};
|
||
var Km = new Uint8Array([
|
||
227,
|
||
176,
|
||
196,
|
||
66,
|
||
152,
|
||
252,
|
||
28,
|
||
20,
|
||
154,
|
||
251,
|
||
244,
|
||
200,
|
||
153,
|
||
111,
|
||
185,
|
||
36,
|
||
39,
|
||
174,
|
||
65,
|
||
228,
|
||
100,
|
||
155,
|
||
147,
|
||
76,
|
||
164,
|
||
149,
|
||
153,
|
||
27,
|
||
120,
|
||
82,
|
||
184,
|
||
85
|
||
]);
|
||
var Gm = (
|
||
/** @class */
|
||
function() {
|
||
function e(t) {
|
||
this.toHash = new Uint8Array(0), this.secret = t, this.reset();
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
if (!Ft(t)) {
|
||
var n = Ze(t), r = new Uint8Array(this.toHash.byteLength + n.byteLength);
|
||
r.set(this.toHash, 0), r.set(n, this.toHash.byteLength), this.toHash = r;
|
||
}
|
||
}, e.prototype.digest = function() {
|
||
var t = this;
|
||
return this.key ? this.key.then(function(n) {
|
||
return Ke().crypto.subtle.sign(po, n, t.toHash).then(function(r) {
|
||
return new Uint8Array(r);
|
||
});
|
||
}) : Ft(this.toHash) ? Promise.resolve(Km) : Promise.resolve().then(function() {
|
||
return Ke().crypto.subtle.digest(oc, t.toHash);
|
||
}).then(function(n) {
|
||
return Promise.resolve(new Uint8Array(n));
|
||
});
|
||
}, e.prototype.reset = function() {
|
||
var t = this;
|
||
this.toHash = new Uint8Array(0), this.secret && this.secret !== void 0 && (this.key = new Promise(function(n, r) {
|
||
Ke().crypto.subtle.importKey("raw", Ze(t.secret), po, false, ["sign"]).then(n, r);
|
||
}), this.key.catch(function() {
|
||
}));
|
||
}, e;
|
||
}()
|
||
);
|
||
var Pe = 64;
|
||
var Zm = 32;
|
||
var Xm = new Uint32Array([
|
||
1116352408,
|
||
1899447441,
|
||
3049323471,
|
||
3921009573,
|
||
961987163,
|
||
1508970993,
|
||
2453635748,
|
||
2870763221,
|
||
3624381080,
|
||
310598401,
|
||
607225278,
|
||
1426881987,
|
||
1925078388,
|
||
2162078206,
|
||
2614888103,
|
||
3248222580,
|
||
3835390401,
|
||
4022224774,
|
||
264347078,
|
||
604807628,
|
||
770255983,
|
||
1249150122,
|
||
1555081692,
|
||
1996064986,
|
||
2554220882,
|
||
2821834349,
|
||
2952996808,
|
||
3210313671,
|
||
3336571891,
|
||
3584528711,
|
||
113926993,
|
||
338241895,
|
||
666307205,
|
||
773529912,
|
||
1294757372,
|
||
1396182291,
|
||
1695183700,
|
||
1986661051,
|
||
2177026350,
|
||
2456956037,
|
||
2730485921,
|
||
2820302411,
|
||
3259730800,
|
||
3345764771,
|
||
3516065817,
|
||
3600352804,
|
||
4094571909,
|
||
275423344,
|
||
430227734,
|
||
506948616,
|
||
659060556,
|
||
883997877,
|
||
958139571,
|
||
1322822218,
|
||
1537002063,
|
||
1747873779,
|
||
1955562222,
|
||
2024104815,
|
||
2227730452,
|
||
2361852424,
|
||
2428436474,
|
||
2756734187,
|
||
3204031479,
|
||
3329325298
|
||
]);
|
||
var Qm = [
|
||
1779033703,
|
||
3144134277,
|
||
1013904242,
|
||
2773480762,
|
||
1359893119,
|
||
2600822924,
|
||
528734635,
|
||
1541459225
|
||
];
|
||
var Ym = Math.pow(2, 53) - 1;
|
||
var Gt = (
|
||
/** @class */
|
||
function() {
|
||
function e() {
|
||
this.state = Int32Array.from(Qm), this.temp = new Int32Array(64), this.buffer = new Uint8Array(64), this.bufferLength = 0, this.bytesHashed = 0, this.finished = false;
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
if (this.finished)
|
||
throw new Error("Attempted to update an already finished hash.");
|
||
var n = 0, r = t.byteLength;
|
||
if (this.bytesHashed += r, this.bytesHashed * 8 > Ym)
|
||
throw new Error("Cannot hash more than 2^53 - 1 bits");
|
||
for (; r > 0; )
|
||
this.buffer[this.bufferLength++] = t[n++], r--, this.bufferLength === Pe && (this.hashBuffer(), this.bufferLength = 0);
|
||
}, e.prototype.digest = function() {
|
||
if (!this.finished) {
|
||
var t = this.bytesHashed * 8, n = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength), r = this.bufferLength;
|
||
if (n.setUint8(this.bufferLength++, 128), r % Pe >= Pe - 8) {
|
||
for (var s = this.bufferLength; s < Pe; s++)
|
||
n.setUint8(s, 0);
|
||
this.hashBuffer(), this.bufferLength = 0;
|
||
}
|
||
for (var s = this.bufferLength; s < Pe - 8; s++)
|
||
n.setUint8(s, 0);
|
||
n.setUint32(Pe - 8, Math.floor(t / 4294967296), true), n.setUint32(Pe - 4, t), this.hashBuffer(), this.finished = true;
|
||
}
|
||
for (var i = new Uint8Array(Zm), s = 0; s < 8; s++)
|
||
i[s * 4] = this.state[s] >>> 24 & 255, i[s * 4 + 1] = this.state[s] >>> 16 & 255, i[s * 4 + 2] = this.state[s] >>> 8 & 255, i[s * 4 + 3] = this.state[s] >>> 0 & 255;
|
||
return i;
|
||
}, e.prototype.hashBuffer = function() {
|
||
for (var t = this, n = t.buffer, r = t.state, s = r[0], i = r[1], o = r[2], a = r[3], c = r[4], u = r[5], l = r[6], f = r[7], p = 0; p < Pe; p++) {
|
||
if (p < 16)
|
||
this.temp[p] = (n[p * 4] & 255) << 24 | (n[p * 4 + 1] & 255) << 16 | (n[p * 4 + 2] & 255) << 8 | n[p * 4 + 3] & 255;
|
||
else {
|
||
var g = this.temp[p - 2], S = (g >>> 17 | g << 15) ^ (g >>> 19 | g << 13) ^ g >>> 10;
|
||
g = this.temp[p - 15];
|
||
var T = (g >>> 7 | g << 25) ^ (g >>> 18 | g << 14) ^ g >>> 3;
|
||
this.temp[p] = (S + this.temp[p - 7] | 0) + (T + this.temp[p - 16] | 0);
|
||
}
|
||
var A = (((c >>> 6 | c << 26) ^ (c >>> 11 | c << 21) ^ (c >>> 25 | c << 7)) + (c & u ^ ~c & l) | 0) + (f + (Xm[p] + this.temp[p] | 0) | 0) | 0, I = ((s >>> 2 | s << 30) ^ (s >>> 13 | s << 19) ^ (s >>> 22 | s << 10)) + (s & i ^ s & o ^ i & o) | 0;
|
||
f = l, l = u, u = c, c = a + A | 0, a = o, o = i, i = s, s = A + I | 0;
|
||
}
|
||
r[0] += s, r[1] += i, r[2] += o, r[3] += a, r[4] += c, r[5] += u, r[6] += l, r[7] += f;
|
||
}, e;
|
||
}()
|
||
);
|
||
var Jm = (
|
||
/** @class */
|
||
function() {
|
||
function e(t) {
|
||
this.secret = t, this.hash = new Gt(), this.reset();
|
||
}
|
||
return e.prototype.update = function(t) {
|
||
if (!(Ft(t) || this.error))
|
||
try {
|
||
this.hash.update(Ze(t));
|
||
} catch (n) {
|
||
this.error = n;
|
||
}
|
||
}, e.prototype.digestSync = function() {
|
||
if (this.error)
|
||
throw this.error;
|
||
return this.outer ? (this.outer.finished || this.outer.update(this.hash.digest()), this.outer.digest()) : this.hash.digest();
|
||
}, e.prototype.digest = function() {
|
||
return _r(this, void 0, void 0, function() {
|
||
return Pr(this, function(t) {
|
||
return [2, this.digestSync()];
|
||
});
|
||
});
|
||
}, e.prototype.reset = function() {
|
||
if (this.hash = new Gt(), this.secret) {
|
||
this.outer = new Gt();
|
||
var t = e0(this.secret), n = new Uint8Array(Pe);
|
||
n.set(t);
|
||
for (var r = 0; r < Pe; r++)
|
||
t[r] ^= 54, n[r] ^= 92;
|
||
this.hash.update(t), this.outer.update(n);
|
||
for (var r = 0; r < t.byteLength; r++)
|
||
t[r] = 0;
|
||
}
|
||
}, e;
|
||
}()
|
||
);
|
||
function e0(e) {
|
||
var t = Ze(e);
|
||
if (t.byteLength > Pe) {
|
||
var n = new Gt();
|
||
n.update(t), t = n.digest();
|
||
}
|
||
var r = new Uint8Array(Pe);
|
||
return r.set(t), r;
|
||
}
|
||
var t0 = (
|
||
/** @class */
|
||
function() {
|
||
function e(t) {
|
||
ic(Ke()) ? this.hash = new Gm(t) : this.hash = new Jm(t);
|
||
}
|
||
return e.prototype.update = function(t, n) {
|
||
this.hash.update(Ze(t));
|
||
}, e.prototype.digest = function() {
|
||
return this.hash.digest();
|
||
}, e.prototype.reset = function() {
|
||
this.hash.reset();
|
||
}, e;
|
||
}()
|
||
);
|
||
var n0 = {
|
||
"Amazon Silk": "amazon_silk",
|
||
"Android Browser": "android",
|
||
Bada: "bada",
|
||
BlackBerry: "blackberry",
|
||
Chrome: "chrome",
|
||
Chromium: "chromium",
|
||
Electron: "electron",
|
||
Epiphany: "epiphany",
|
||
Firefox: "firefox",
|
||
Focus: "focus",
|
||
Generic: "generic",
|
||
"Google Search": "google_search",
|
||
Googlebot: "googlebot",
|
||
"Internet Explorer": "ie",
|
||
"K-Meleon": "k_meleon",
|
||
Maxthon: "maxthon",
|
||
"Microsoft Edge": "edge",
|
||
"MZ Browser": "mz",
|
||
"NAVER Whale Browser": "naver",
|
||
Opera: "opera",
|
||
"Opera Coast": "opera_coast",
|
||
PhantomJS: "phantomjs",
|
||
Puffin: "puffin",
|
||
QupZilla: "qupzilla",
|
||
QQ: "qq",
|
||
QQLite: "qqlite",
|
||
Safari: "safari",
|
||
Sailfish: "sailfish",
|
||
"Samsung Internet for Android": "samsung_internet",
|
||
SeaMonkey: "seamonkey",
|
||
Sleipnir: "sleipnir",
|
||
Swing: "swing",
|
||
Tizen: "tizen",
|
||
"UC Browser": "uc",
|
||
Vivaldi: "vivaldi",
|
||
"WebOS Browser": "webos",
|
||
WeChat: "wechat",
|
||
"Yandex Browser": "yandex",
|
||
Roku: "roku"
|
||
};
|
||
var ac = {
|
||
amazon_silk: "Amazon Silk",
|
||
android: "Android Browser",
|
||
bada: "Bada",
|
||
blackberry: "BlackBerry",
|
||
chrome: "Chrome",
|
||
chromium: "Chromium",
|
||
electron: "Electron",
|
||
epiphany: "Epiphany",
|
||
firefox: "Firefox",
|
||
focus: "Focus",
|
||
generic: "Generic",
|
||
googlebot: "Googlebot",
|
||
google_search: "Google Search",
|
||
ie: "Internet Explorer",
|
||
k_meleon: "K-Meleon",
|
||
maxthon: "Maxthon",
|
||
edge: "Microsoft Edge",
|
||
mz: "MZ Browser",
|
||
naver: "NAVER Whale Browser",
|
||
opera: "Opera",
|
||
opera_coast: "Opera Coast",
|
||
phantomjs: "PhantomJS",
|
||
puffin: "Puffin",
|
||
qupzilla: "QupZilla",
|
||
qq: "QQ Browser",
|
||
qqlite: "QQ Browser Lite",
|
||
safari: "Safari",
|
||
sailfish: "Sailfish",
|
||
samsung_internet: "Samsung Internet for Android",
|
||
seamonkey: "SeaMonkey",
|
||
sleipnir: "Sleipnir",
|
||
swing: "Swing",
|
||
tizen: "Tizen",
|
||
uc: "UC Browser",
|
||
vivaldi: "Vivaldi",
|
||
webos: "WebOS Browser",
|
||
wechat: "WeChat",
|
||
yandex: "Yandex Browser"
|
||
};
|
||
var Z = {
|
||
tablet: "tablet",
|
||
mobile: "mobile",
|
||
desktop: "desktop",
|
||
tv: "tv"
|
||
};
|
||
var Ae = {
|
||
WindowsPhone: "Windows Phone",
|
||
Windows: "Windows",
|
||
MacOS: "macOS",
|
||
iOS: "iOS",
|
||
Android: "Android",
|
||
WebOS: "WebOS",
|
||
BlackBerry: "BlackBerry",
|
||
Bada: "Bada",
|
||
Tizen: "Tizen",
|
||
Linux: "Linux",
|
||
ChromeOS: "Chrome OS",
|
||
PlayStation4: "PlayStation 4",
|
||
Roku: "Roku"
|
||
};
|
||
var je = {
|
||
EdgeHTML: "EdgeHTML",
|
||
Blink: "Blink",
|
||
Trident: "Trident",
|
||
Presto: "Presto",
|
||
Gecko: "Gecko",
|
||
WebKit: "WebKit"
|
||
};
|
||
var E = class _E {
|
||
/**
|
||
* Get first matched item for a string
|
||
* @param {RegExp} regexp
|
||
* @param {String} ua
|
||
* @return {Array|{index: number, input: string}|*|boolean|string}
|
||
*/
|
||
static getFirstMatch(t, n) {
|
||
const r = n.match(t);
|
||
return r && r.length > 0 && r[1] || "";
|
||
}
|
||
/**
|
||
* Get second matched item for a string
|
||
* @param regexp
|
||
* @param {String} ua
|
||
* @return {Array|{index: number, input: string}|*|boolean|string}
|
||
*/
|
||
static getSecondMatch(t, n) {
|
||
const r = n.match(t);
|
||
return r && r.length > 1 && r[2] || "";
|
||
}
|
||
/**
|
||
* Match a regexp and return a constant or undefined
|
||
* @param {RegExp} regexp
|
||
* @param {String} ua
|
||
* @param {*} _const Any const that will be returned if regexp matches the string
|
||
* @return {*}
|
||
*/
|
||
static matchAndReturnConst(t, n, r) {
|
||
if (t.test(n))
|
||
return r;
|
||
}
|
||
static getWindowsVersionName(t) {
|
||
switch (t) {
|
||
case "NT":
|
||
return "NT";
|
||
case "XP":
|
||
return "XP";
|
||
case "NT 5.0":
|
||
return "2000";
|
||
case "NT 5.1":
|
||
return "XP";
|
||
case "NT 5.2":
|
||
return "2003";
|
||
case "NT 6.0":
|
||
return "Vista";
|
||
case "NT 6.1":
|
||
return "7";
|
||
case "NT 6.2":
|
||
return "8";
|
||
case "NT 6.3":
|
||
return "8.1";
|
||
case "NT 10.0":
|
||
return "10";
|
||
default:
|
||
return;
|
||
}
|
||
}
|
||
/**
|
||
* Get macOS version name
|
||
* 10.5 - Leopard
|
||
* 10.6 - Snow Leopard
|
||
* 10.7 - Lion
|
||
* 10.8 - Mountain Lion
|
||
* 10.9 - Mavericks
|
||
* 10.10 - Yosemite
|
||
* 10.11 - El Capitan
|
||
* 10.12 - Sierra
|
||
* 10.13 - High Sierra
|
||
* 10.14 - Mojave
|
||
* 10.15 - Catalina
|
||
*
|
||
* @example
|
||
* getMacOSVersionName("10.14") // 'Mojave'
|
||
*
|
||
* @param {string} version
|
||
* @return {string} versionName
|
||
*/
|
||
static getMacOSVersionName(t) {
|
||
const n = t.split(".").splice(0, 2).map((r) => parseInt(r, 10) || 0);
|
||
if (n.push(0), n[0] === 10)
|
||
switch (n[1]) {
|
||
case 5:
|
||
return "Leopard";
|
||
case 6:
|
||
return "Snow Leopard";
|
||
case 7:
|
||
return "Lion";
|
||
case 8:
|
||
return "Mountain Lion";
|
||
case 9:
|
||
return "Mavericks";
|
||
case 10:
|
||
return "Yosemite";
|
||
case 11:
|
||
return "El Capitan";
|
||
case 12:
|
||
return "Sierra";
|
||
case 13:
|
||
return "High Sierra";
|
||
case 14:
|
||
return "Mojave";
|
||
case 15:
|
||
return "Catalina";
|
||
default:
|
||
return;
|
||
}
|
||
}
|
||
/**
|
||
* Get Android version name
|
||
* 1.5 - Cupcake
|
||
* 1.6 - Donut
|
||
* 2.0 - Eclair
|
||
* 2.1 - Eclair
|
||
* 2.2 - Froyo
|
||
* 2.x - Gingerbread
|
||
* 3.x - Honeycomb
|
||
* 4.0 - Ice Cream Sandwich
|
||
* 4.1 - Jelly Bean
|
||
* 4.4 - KitKat
|
||
* 5.x - Lollipop
|
||
* 6.x - Marshmallow
|
||
* 7.x - Nougat
|
||
* 8.x - Oreo
|
||
* 9.x - Pie
|
||
*
|
||
* @example
|
||
* getAndroidVersionName("7.0") // 'Nougat'
|
||
*
|
||
* @param {string} version
|
||
* @return {string} versionName
|
||
*/
|
||
static getAndroidVersionName(t) {
|
||
const n = t.split(".").splice(0, 2).map((r) => parseInt(r, 10) || 0);
|
||
if (n.push(0), !(n[0] === 1 && n[1] < 5)) {
|
||
if (n[0] === 1 && n[1] < 6)
|
||
return "Cupcake";
|
||
if (n[0] === 1 && n[1] >= 6)
|
||
return "Donut";
|
||
if (n[0] === 2 && n[1] < 2)
|
||
return "Eclair";
|
||
if (n[0] === 2 && n[1] === 2)
|
||
return "Froyo";
|
||
if (n[0] === 2 && n[1] > 2)
|
||
return "Gingerbread";
|
||
if (n[0] === 3)
|
||
return "Honeycomb";
|
||
if (n[0] === 4 && n[1] < 1)
|
||
return "Ice Cream Sandwich";
|
||
if (n[0] === 4 && n[1] < 4)
|
||
return "Jelly Bean";
|
||
if (n[0] === 4 && n[1] >= 4)
|
||
return "KitKat";
|
||
if (n[0] === 5)
|
||
return "Lollipop";
|
||
if (n[0] === 6)
|
||
return "Marshmallow";
|
||
if (n[0] === 7)
|
||
return "Nougat";
|
||
if (n[0] === 8)
|
||
return "Oreo";
|
||
if (n[0] === 9)
|
||
return "Pie";
|
||
}
|
||
}
|
||
/**
|
||
* Get version precisions count
|
||
*
|
||
* @example
|
||
* getVersionPrecision("1.10.3") // 3
|
||
*
|
||
* @param {string} version
|
||
* @return {number}
|
||
*/
|
||
static getVersionPrecision(t) {
|
||
return t.split(".").length;
|
||
}
|
||
/**
|
||
* Calculate browser version weight
|
||
*
|
||
* @example
|
||
* compareVersions('1.10.2.1', '1.8.2.1.90') // 1
|
||
* compareVersions('1.010.2.1', '1.09.2.1.90'); // 1
|
||
* compareVersions('1.10.2.1', '1.10.2.1'); // 0
|
||
* compareVersions('1.10.2.1', '1.0800.2'); // -1
|
||
* compareVersions('1.10.2.1', '1.10', true); // 0
|
||
*
|
||
* @param {String} versionA versions versions to compare
|
||
* @param {String} versionB versions versions to compare
|
||
* @param {boolean} [isLoose] enable loose comparison
|
||
* @return {Number} comparison result: -1 when versionA is lower,
|
||
* 1 when versionA is bigger, 0 when both equal
|
||
*/
|
||
/* eslint consistent-return: 1 */
|
||
static compareVersions(t, n, r = false) {
|
||
const s = _E.getVersionPrecision(t), i = _E.getVersionPrecision(n);
|
||
let o = Math.max(s, i), a = 0;
|
||
const c = _E.map([t, n], (u) => {
|
||
const l = o - _E.getVersionPrecision(u), f = u + new Array(l + 1).join(".0");
|
||
return _E.map(f.split("."), (p) => new Array(20 - p.length).join("0") + p).reverse();
|
||
});
|
||
for (r && (a = o - Math.min(s, i)), o -= 1; o >= a; ) {
|
||
if (c[0][o] > c[1][o])
|
||
return 1;
|
||
if (c[0][o] === c[1][o]) {
|
||
if (o === a)
|
||
return 0;
|
||
o -= 1;
|
||
} else if (c[0][o] < c[1][o])
|
||
return -1;
|
||
}
|
||
}
|
||
/**
|
||
* Array::map polyfill
|
||
*
|
||
* @param {Array} arr
|
||
* @param {Function} iterator
|
||
* @return {Array}
|
||
*/
|
||
static map(t, n) {
|
||
const r = [];
|
||
let s;
|
||
if (Array.prototype.map)
|
||
return Array.prototype.map.call(t, n);
|
||
for (s = 0; s < t.length; s += 1)
|
||
r.push(n(t[s]));
|
||
return r;
|
||
}
|
||
/**
|
||
* Array::find polyfill
|
||
*
|
||
* @param {Array} arr
|
||
* @param {Function} predicate
|
||
* @return {Array}
|
||
*/
|
||
static find(t, n) {
|
||
let r, s;
|
||
if (Array.prototype.find)
|
||
return Array.prototype.find.call(t, n);
|
||
for (r = 0, s = t.length; r < s; r += 1) {
|
||
const i = t[r];
|
||
if (n(i, r))
|
||
return i;
|
||
}
|
||
}
|
||
/**
|
||
* Object::assign polyfill
|
||
*
|
||
* @param {Object} obj
|
||
* @param {Object} ...objs
|
||
* @return {Object}
|
||
*/
|
||
static assign(t, ...n) {
|
||
const r = t;
|
||
let s, i;
|
||
if (Object.assign)
|
||
return Object.assign(t, ...n);
|
||
for (s = 0, i = n.length; s < i; s += 1) {
|
||
const o = n[s];
|
||
typeof o == "object" && o !== null && Object.keys(o).forEach((c) => {
|
||
r[c] = o[c];
|
||
});
|
||
}
|
||
return t;
|
||
}
|
||
/**
|
||
* Get short version/alias for a browser name
|
||
*
|
||
* @example
|
||
* getBrowserAlias('Microsoft Edge') // edge
|
||
*
|
||
* @param {string} browserName
|
||
* @return {string}
|
||
*/
|
||
static getBrowserAlias(t) {
|
||
return n0[t];
|
||
}
|
||
/**
|
||
* Get short version/alias for a browser name
|
||
*
|
||
* @example
|
||
* getBrowserAlias('edge') // Microsoft Edge
|
||
*
|
||
* @param {string} browserAlias
|
||
* @return {string}
|
||
*/
|
||
static getBrowserTypeByAlias(t) {
|
||
return ac[t] || "";
|
||
}
|
||
};
|
||
var z = /version\/(\d+(\.?_?\d+)+)/i;
|
||
var r0 = [
|
||
/* Googlebot */
|
||
{
|
||
test: [/googlebot/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Googlebot"
|
||
}, n = E.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Opera < 13.0 */
|
||
{
|
||
test: [/opera/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Opera"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Opera > 13.0 */
|
||
{
|
||
test: [/opr\/|opios/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Opera"
|
||
}, n = E.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/SamsungBrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Samsung Internet for Android"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/Whale/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "NAVER Whale Browser"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/MZBrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "MZ Browser"
|
||
}, n = E.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/focus/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Focus"
|
||
}, n = E.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/swing/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Swing"
|
||
}, n = E.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/coast/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Opera Coast"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/opt\/\d+(?:.?_?\d+)+/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Opera Touch"
|
||
}, n = E.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/yabrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Yandex Browser"
|
||
}, n = E.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/ucbrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "UC Browser"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/Maxthon|mxios/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Maxthon"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/epiphany/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Epiphany"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/puffin/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Puffin"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/sleipnir/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Sleipnir"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/k-meleon/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "K-Meleon"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/micromessenger/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "WeChat"
|
||
}, n = E.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/qqbrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: /qqbrowserlite/i.test(e) ? "QQ Browser Lite" : "QQ Browser"
|
||
}, n = E.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/msie|trident/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Internet Explorer"
|
||
}, n = E.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/\sedg\//i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Microsoft Edge"
|
||
}, n = E.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/edg([ea]|ios)/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Microsoft Edge"
|
||
}, n = E.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/vivaldi/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Vivaldi"
|
||
}, n = E.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/seamonkey/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "SeaMonkey"
|
||
}, n = E.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/sailfish/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Sailfish"
|
||
}, n = E.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/silk/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Amazon Silk"
|
||
}, n = E.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/phantom/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "PhantomJS"
|
||
}, n = E.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/slimerjs/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "SlimerJS"
|
||
}, n = E.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "BlackBerry"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/(web|hpw)[o0]s/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "WebOS Browser"
|
||
}, n = E.getFirstMatch(z, e) || E.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/bada/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Bada"
|
||
}, n = E.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/tizen/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Tizen"
|
||
}, n = E.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/qupzilla/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "QupZilla"
|
||
}, n = E.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/firefox|iceweasel|fxios/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Firefox"
|
||
}, n = E.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/electron/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Electron"
|
||
}, n = E.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/MiuiBrowser/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Miui"
|
||
}, n = E.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/chromium/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Chromium"
|
||
}, n = E.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e) || E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/chrome|crios|crmo/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Chrome"
|
||
}, n = E.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
{
|
||
test: [/GSA/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Google Search"
|
||
}, n = E.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Android Browser */
|
||
{
|
||
test(e) {
|
||
const t = !e.test(/like android/i), n = e.test(/android/i);
|
||
return t && n;
|
||
},
|
||
describe(e) {
|
||
const t = {
|
||
name: "Android Browser"
|
||
}, n = E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* PlayStation 4 */
|
||
{
|
||
test: [/playstation 4/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "PlayStation 4"
|
||
}, n = E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Safari */
|
||
{
|
||
test: [/safari|applewebkit/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: "Safari"
|
||
}, n = E.getFirstMatch(z, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Something else */
|
||
{
|
||
test: [/.*/i],
|
||
describe(e) {
|
||
const t = /^(.*)\/(.*) /, n = /^(.*)\/(.*)[ \t]\((.*)/, s = e.search("\\(") !== -1 ? n : t;
|
||
return {
|
||
name: E.getFirstMatch(s, e),
|
||
version: E.getSecondMatch(s, e)
|
||
};
|
||
}
|
||
}
|
||
];
|
||
var s0 = [
|
||
/* Roku */
|
||
{
|
||
test: [/Roku\/DVP/],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e);
|
||
return {
|
||
name: Ae.Roku,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Windows Phone */
|
||
{
|
||
test: [/windows phone/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e);
|
||
return {
|
||
name: Ae.WindowsPhone,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Windows */
|
||
{
|
||
test: [/windows /i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e), n = E.getWindowsVersionName(t);
|
||
return {
|
||
name: Ae.Windows,
|
||
version: t,
|
||
versionName: n
|
||
};
|
||
}
|
||
},
|
||
/* Firefox on iPad */
|
||
{
|
||
test: [/Macintosh(.*?) FxiOS(.*?)\//],
|
||
describe(e) {
|
||
const t = {
|
||
name: Ae.iOS
|
||
}, n = E.getSecondMatch(/(Version\/)(\d[\d.]+)/, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* macOS */
|
||
{
|
||
test: [/macintosh/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e).replace(/[_\s]/g, "."), n = E.getMacOSVersionName(t), r = {
|
||
name: Ae.MacOS,
|
||
version: t
|
||
};
|
||
return n && (r.versionName = n), r;
|
||
}
|
||
},
|
||
/* iOS */
|
||
{
|
||
test: [/(ipod|iphone|ipad)/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e).replace(/[_\s]/g, ".");
|
||
return {
|
||
name: Ae.iOS,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Android */
|
||
{
|
||
test(e) {
|
||
const t = !e.test(/like android/i), n = e.test(/android/i);
|
||
return t && n;
|
||
},
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e), n = E.getAndroidVersionName(t), r = {
|
||
name: Ae.Android,
|
||
version: t
|
||
};
|
||
return n && (r.versionName = n), r;
|
||
}
|
||
},
|
||
/* WebOS */
|
||
{
|
||
test: [/(web|hpw)[o0]s/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e), n = {
|
||
name: Ae.WebOS
|
||
};
|
||
return t && t.length && (n.version = t), n;
|
||
}
|
||
},
|
||
/* BlackBerry */
|
||
{
|
||
test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e) || E.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e) || E.getFirstMatch(/\bbb(\d+)/i, e);
|
||
return {
|
||
name: Ae.BlackBerry,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Bada */
|
||
{
|
||
test: [/bada/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e);
|
||
return {
|
||
name: Ae.Bada,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Tizen */
|
||
{
|
||
test: [/tizen/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e);
|
||
return {
|
||
name: Ae.Tizen,
|
||
version: t
|
||
};
|
||
}
|
||
},
|
||
/* Linux */
|
||
{
|
||
test: [/linux/i],
|
||
describe() {
|
||
return {
|
||
name: Ae.Linux
|
||
};
|
||
}
|
||
},
|
||
/* Chrome OS */
|
||
{
|
||
test: [/CrOS/],
|
||
describe() {
|
||
return {
|
||
name: Ae.ChromeOS
|
||
};
|
||
}
|
||
},
|
||
/* Playstation 4 */
|
||
{
|
||
test: [/PlayStation 4/],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e);
|
||
return {
|
||
name: Ae.PlayStation4,
|
||
version: t
|
||
};
|
||
}
|
||
}
|
||
];
|
||
var i0 = [
|
||
/* Googlebot */
|
||
{
|
||
test: [/googlebot/i],
|
||
describe() {
|
||
return {
|
||
type: "bot",
|
||
vendor: "Google"
|
||
};
|
||
}
|
||
},
|
||
/* Huawei */
|
||
{
|
||
test: [/huawei/i],
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/(can-l01)/i, e) && "Nova", n = {
|
||
type: Z.mobile,
|
||
vendor: "Huawei"
|
||
};
|
||
return t && (n.model = t), n;
|
||
}
|
||
},
|
||
/* Nexus Tablet */
|
||
{
|
||
test: [/nexus\s*(?:7|8|9|10).*/i],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet,
|
||
vendor: "Nexus"
|
||
};
|
||
}
|
||
},
|
||
/* iPad */
|
||
{
|
||
test: [/ipad/i],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet,
|
||
vendor: "Apple",
|
||
model: "iPad"
|
||
};
|
||
}
|
||
},
|
||
/* Firefox on iPad */
|
||
{
|
||
test: [/Macintosh(.*?) FxiOS(.*?)\//],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet,
|
||
vendor: "Apple",
|
||
model: "iPad"
|
||
};
|
||
}
|
||
},
|
||
/* Amazon Kindle Fire */
|
||
{
|
||
test: [/kftt build/i],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet,
|
||
vendor: "Amazon",
|
||
model: "Kindle Fire HD 7"
|
||
};
|
||
}
|
||
},
|
||
/* Another Amazon Tablet with Silk */
|
||
{
|
||
test: [/silk/i],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet,
|
||
vendor: "Amazon"
|
||
};
|
||
}
|
||
},
|
||
/* Tablet */
|
||
{
|
||
test: [/tablet(?! pc)/i],
|
||
describe() {
|
||
return {
|
||
type: Z.tablet
|
||
};
|
||
}
|
||
},
|
||
/* iPod/iPhone */
|
||
{
|
||
test(e) {
|
||
const t = e.test(/ipod|iphone/i), n = e.test(/like (ipod|iphone)/i);
|
||
return t && !n;
|
||
},
|
||
describe(e) {
|
||
const t = E.getFirstMatch(/(ipod|iphone)/i, e);
|
||
return {
|
||
type: Z.mobile,
|
||
vendor: "Apple",
|
||
model: t
|
||
};
|
||
}
|
||
},
|
||
/* Nexus Mobile */
|
||
{
|
||
test: [/nexus\s*[0-6].*/i, /galaxy nexus/i],
|
||
describe() {
|
||
return {
|
||
type: Z.mobile,
|
||
vendor: "Nexus"
|
||
};
|
||
}
|
||
},
|
||
/* Mobile */
|
||
{
|
||
test: [/[^-]mobi/i],
|
||
describe() {
|
||
return {
|
||
type: Z.mobile
|
||
};
|
||
}
|
||
},
|
||
/* BlackBerry */
|
||
{
|
||
test(e) {
|
||
return e.getBrowserName(true) === "blackberry";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.mobile,
|
||
vendor: "BlackBerry"
|
||
};
|
||
}
|
||
},
|
||
/* Bada */
|
||
{
|
||
test(e) {
|
||
return e.getBrowserName(true) === "bada";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.mobile
|
||
};
|
||
}
|
||
},
|
||
/* Windows Phone */
|
||
{
|
||
test(e) {
|
||
return e.getBrowserName() === "windows phone";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.mobile,
|
||
vendor: "Microsoft"
|
||
};
|
||
}
|
||
},
|
||
/* Android Tablet */
|
||
{
|
||
test(e) {
|
||
const t = Number(String(e.getOSVersion()).split(".")[0]);
|
||
return e.getOSName(true) === "android" && t >= 3;
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.tablet
|
||
};
|
||
}
|
||
},
|
||
/* Android Mobile */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "android";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.mobile
|
||
};
|
||
}
|
||
},
|
||
/* desktop */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "macos";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.desktop,
|
||
vendor: "Apple"
|
||
};
|
||
}
|
||
},
|
||
/* Windows */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "windows";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.desktop
|
||
};
|
||
}
|
||
},
|
||
/* Linux */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "linux";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.desktop
|
||
};
|
||
}
|
||
},
|
||
/* PlayStation 4 */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "playstation 4";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.tv
|
||
};
|
||
}
|
||
},
|
||
/* Roku */
|
||
{
|
||
test(e) {
|
||
return e.getOSName(true) === "roku";
|
||
},
|
||
describe() {
|
||
return {
|
||
type: Z.tv
|
||
};
|
||
}
|
||
}
|
||
];
|
||
var o0 = [
|
||
/* EdgeHTML */
|
||
{
|
||
test(e) {
|
||
return e.getBrowserName(true) === "microsoft edge";
|
||
},
|
||
describe(e) {
|
||
if (/\sedg\//i.test(e))
|
||
return {
|
||
name: je.Blink
|
||
};
|
||
const n = E.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e);
|
||
return {
|
||
name: je.EdgeHTML,
|
||
version: n
|
||
};
|
||
}
|
||
},
|
||
/* Trident */
|
||
{
|
||
test: [/trident/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: je.Trident
|
||
}, n = E.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Presto */
|
||
{
|
||
test(e) {
|
||
return e.test(/presto/i);
|
||
},
|
||
describe(e) {
|
||
const t = {
|
||
name: je.Presto
|
||
}, n = E.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Gecko */
|
||
{
|
||
test(e) {
|
||
const t = e.test(/gecko/i), n = e.test(/like gecko/i);
|
||
return t && !n;
|
||
},
|
||
describe(e) {
|
||
const t = {
|
||
name: je.Gecko
|
||
}, n = E.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
},
|
||
/* Blink */
|
||
{
|
||
test: [/(apple)?webkit\/537\.36/i],
|
||
describe() {
|
||
return {
|
||
name: je.Blink
|
||
};
|
||
}
|
||
},
|
||
/* WebKit */
|
||
{
|
||
test: [/(apple)?webkit/i],
|
||
describe(e) {
|
||
const t = {
|
||
name: je.WebKit
|
||
}, n = E.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e);
|
||
return n && (t.version = n), t;
|
||
}
|
||
}
|
||
];
|
||
var go = class {
|
||
/**
|
||
* Create instance of Parser
|
||
*
|
||
* @param {String} UA User-Agent string
|
||
* @param {Boolean} [skipParsing=false] parser can skip parsing in purpose of performance
|
||
* improvements if you need to make a more particular parsing
|
||
* like {@link Parser#parseBrowser} or {@link Parser#parsePlatform}
|
||
*
|
||
* @throw {Error} in case of empty UA String
|
||
*
|
||
* @constructor
|
||
*/
|
||
constructor(t, n = false) {
|
||
if (t == null || t === "")
|
||
throw new Error("UserAgent parameter can't be empty");
|
||
this._ua = t, this.parsedResult = {}, n !== true && this.parse();
|
||
}
|
||
/**
|
||
* Get UserAgent string of current Parser instance
|
||
* @return {String} User-Agent String of the current <Parser> object
|
||
*
|
||
* @public
|
||
*/
|
||
getUA() {
|
||
return this._ua;
|
||
}
|
||
/**
|
||
* Test a UA string for a regexp
|
||
* @param {RegExp} regex
|
||
* @return {Boolean}
|
||
*/
|
||
test(t) {
|
||
return t.test(this._ua);
|
||
}
|
||
/**
|
||
* Get parsed browser object
|
||
* @return {Object}
|
||
*/
|
||
parseBrowser() {
|
||
this.parsedResult.browser = {};
|
||
const t = E.find(r0, (n) => {
|
||
if (typeof n.test == "function")
|
||
return n.test(this);
|
||
if (n.test instanceof Array)
|
||
return n.test.some((r) => this.test(r));
|
||
throw new Error("Browser's test function is not valid");
|
||
});
|
||
return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser;
|
||
}
|
||
/**
|
||
* Get parsed browser object
|
||
* @return {Object}
|
||
*
|
||
* @public
|
||
*/
|
||
getBrowser() {
|
||
return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();
|
||
}
|
||
/**
|
||
* Get browser's name
|
||
* @return {String} Browser's name or an empty string
|
||
*
|
||
* @public
|
||
*/
|
||
getBrowserName(t) {
|
||
return t ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || "";
|
||
}
|
||
/**
|
||
* Get browser's version
|
||
* @return {String} version of browser
|
||
*
|
||
* @public
|
||
*/
|
||
getBrowserVersion() {
|
||
return this.getBrowser().version;
|
||
}
|
||
/**
|
||
* Get OS
|
||
* @return {Object}
|
||
*
|
||
* @example
|
||
* this.getOS();
|
||
* {
|
||
* name: 'macOS',
|
||
* version: '10.11.12'
|
||
* }
|
||
*/
|
||
getOS() {
|
||
return this.parsedResult.os ? this.parsedResult.os : this.parseOS();
|
||
}
|
||
/**
|
||
* Parse OS and save it to this.parsedResult.os
|
||
* @return {*|{}}
|
||
*/
|
||
parseOS() {
|
||
this.parsedResult.os = {};
|
||
const t = E.find(s0, (n) => {
|
||
if (typeof n.test == "function")
|
||
return n.test(this);
|
||
if (n.test instanceof Array)
|
||
return n.test.some((r) => this.test(r));
|
||
throw new Error("Browser's test function is not valid");
|
||
});
|
||
return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;
|
||
}
|
||
/**
|
||
* Get OS name
|
||
* @param {Boolean} [toLowerCase] return lower-cased value
|
||
* @return {String} name of the OS — macOS, Windows, Linux, etc.
|
||
*/
|
||
getOSName(t) {
|
||
const { name: n } = this.getOS();
|
||
return t ? String(n).toLowerCase() || "" : n || "";
|
||
}
|
||
/**
|
||
* Get OS version
|
||
* @return {String} full version with dots ('10.11.12', '5.6', etc)
|
||
*/
|
||
getOSVersion() {
|
||
return this.getOS().version;
|
||
}
|
||
/**
|
||
* Get parsed platform
|
||
* @return {{}}
|
||
*/
|
||
getPlatform() {
|
||
return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();
|
||
}
|
||
/**
|
||
* Get platform name
|
||
* @param {Boolean} [toLowerCase=false]
|
||
* @return {*}
|
||
*/
|
||
getPlatformType(t = false) {
|
||
const { type: n } = this.getPlatform();
|
||
return t ? String(n).toLowerCase() || "" : n || "";
|
||
}
|
||
/**
|
||
* Get parsed platform
|
||
* @return {{}}
|
||
*/
|
||
parsePlatform() {
|
||
this.parsedResult.platform = {};
|
||
const t = E.find(i0, (n) => {
|
||
if (typeof n.test == "function")
|
||
return n.test(this);
|
||
if (n.test instanceof Array)
|
||
return n.test.some((r) => this.test(r));
|
||
throw new Error("Browser's test function is not valid");
|
||
});
|
||
return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;
|
||
}
|
||
/**
|
||
* Get parsed engine
|
||
* @return {{}}
|
||
*/
|
||
getEngine() {
|
||
return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();
|
||
}
|
||
/**
|
||
* Get engines's name
|
||
* @return {String} Engines's name or an empty string
|
||
*
|
||
* @public
|
||
*/
|
||
getEngineName(t) {
|
||
return t ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || "";
|
||
}
|
||
/**
|
||
* Get parsed platform
|
||
* @return {{}}
|
||
*/
|
||
parseEngine() {
|
||
this.parsedResult.engine = {};
|
||
const t = E.find(o0, (n) => {
|
||
if (typeof n.test == "function")
|
||
return n.test(this);
|
||
if (n.test instanceof Array)
|
||
return n.test.some((r) => this.test(r));
|
||
throw new Error("Browser's test function is not valid");
|
||
});
|
||
return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;
|
||
}
|
||
/**
|
||
* Parse full information about the browser
|
||
* @returns {Parser}
|
||
*/
|
||
parse() {
|
||
return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;
|
||
}
|
||
/**
|
||
* Get parsed result
|
||
* @return {ParsedResult}
|
||
*/
|
||
getResult() {
|
||
return E.assign({}, this.parsedResult);
|
||
}
|
||
/**
|
||
* Check if parsed browser matches certain conditions
|
||
*
|
||
* @param {Object} checkTree It's one or two layered object,
|
||
* which can include a platform or an OS on the first layer
|
||
* and should have browsers specs on the bottom-laying layer
|
||
*
|
||
* @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not.
|
||
* Returns `undefined` when the browser is no described in the checkTree object.
|
||
*
|
||
* @example
|
||
* const browser = Bowser.getParser(window.navigator.userAgent);
|
||
* if (browser.satisfies({chrome: '>118.01.1322' }))
|
||
* // or with os
|
||
* if (browser.satisfies({windows: { chrome: '>118.01.1322' } }))
|
||
* // or with platforms
|
||
* if (browser.satisfies({desktop: { chrome: '>118.01.1322' } }))
|
||
*/
|
||
satisfies(t) {
|
||
const n = {};
|
||
let r = 0;
|
||
const s = {};
|
||
let i = 0;
|
||
if (Object.keys(t).forEach((a) => {
|
||
const c = t[a];
|
||
typeof c == "string" ? (s[a] = c, i += 1) : typeof c == "object" && (n[a] = c, r += 1);
|
||
}), r > 0) {
|
||
const a = Object.keys(n), c = E.find(a, (l) => this.isOS(l));
|
||
if (c) {
|
||
const l = this.satisfies(n[c]);
|
||
if (l !== void 0)
|
||
return l;
|
||
}
|
||
const u = E.find(
|
||
a,
|
||
(l) => this.isPlatform(l)
|
||
);
|
||
if (u) {
|
||
const l = this.satisfies(n[u]);
|
||
if (l !== void 0)
|
||
return l;
|
||
}
|
||
}
|
||
if (i > 0) {
|
||
const a = Object.keys(s), c = E.find(a, (u) => this.isBrowser(u, true));
|
||
if (c !== void 0)
|
||
return this.compareVersion(s[c]);
|
||
}
|
||
}
|
||
/**
|
||
* Check if the browser name equals the passed string
|
||
* @param browserName The string to compare with the browser name
|
||
* @param [includingAlias=false] The flag showing whether alias will be included into comparison
|
||
* @returns {boolean}
|
||
*/
|
||
isBrowser(t, n = false) {
|
||
const r = this.getBrowserName().toLowerCase();
|
||
let s = t.toLowerCase();
|
||
const i = E.getBrowserTypeByAlias(s);
|
||
return n && i && (s = i.toLowerCase()), s === r;
|
||
}
|
||
compareVersion(t) {
|
||
let n = [0], r = t, s = false;
|
||
const i = this.getBrowserVersion();
|
||
if (typeof i == "string")
|
||
return t[0] === ">" || t[0] === "<" ? (r = t.substr(1), t[1] === "=" ? (s = true, r = t.substr(2)) : n = [], t[0] === ">" ? n.push(1) : n.push(-1)) : t[0] === "=" ? r = t.substr(1) : t[0] === "~" && (s = true, r = t.substr(1)), n.indexOf(
|
||
E.compareVersions(i, r, s)
|
||
) > -1;
|
||
}
|
||
isOS(t) {
|
||
return this.getOSName(true) === String(t).toLowerCase();
|
||
}
|
||
isPlatform(t) {
|
||
return this.getPlatformType(true) === String(t).toLowerCase();
|
||
}
|
||
isEngine(t) {
|
||
return this.getEngineName(true) === String(t).toLowerCase();
|
||
}
|
||
/**
|
||
* Is anything? Check if the browser is called "anything",
|
||
* the OS called "anything" or the platform called "anything"
|
||
* @param {String} anything
|
||
* @param [includingAlias=false] The flag showing whether alias will be included into comparison
|
||
* @returns {Boolean}
|
||
*/
|
||
is(t, n = false) {
|
||
return this.isBrowser(t, n) || this.isOS(t) || this.isPlatform(t);
|
||
}
|
||
/**
|
||
* Check if any of the given values satisfies this.is(anything)
|
||
* @param {String[]} anythings
|
||
* @returns {Boolean}
|
||
*/
|
||
some(t = []) {
|
||
return t.some((n) => this.is(n));
|
||
}
|
||
};
|
||
var cc = class {
|
||
/**
|
||
* Creates a {@link Parser} instance
|
||
*
|
||
* @param {String} UA UserAgent string
|
||
* @param {Boolean} [skipParsing=false] Will make the Parser postpone parsing until you ask it
|
||
* explicitly. Same as `skipParsing` for {@link Parser}.
|
||
* @returns {Parser}
|
||
* @throws {Error} when UA is not a String
|
||
*
|
||
* @example
|
||
* const parser = Bowser.getParser(window.navigator.userAgent);
|
||
* const result = parser.getResult();
|
||
*/
|
||
static getParser(t, n = false) {
|
||
if (typeof t != "string")
|
||
throw new Error("UserAgent should be a string");
|
||
return new go(t, n);
|
||
}
|
||
/**
|
||
* Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately
|
||
*
|
||
* @param UA
|
||
* @return {ParsedResult}
|
||
*
|
||
* @example
|
||
* const result = Bowser.parse(window.navigator.userAgent);
|
||
*/
|
||
static parse(t) {
|
||
return new go(t).getResult();
|
||
}
|
||
static get BROWSER_MAP() {
|
||
return ac;
|
||
}
|
||
static get ENGINE_MAP() {
|
||
return je;
|
||
}
|
||
static get OS_MAP() {
|
||
return Ae;
|
||
}
|
||
static get PLATFORMS_MAP() {
|
||
return Z;
|
||
}
|
||
};
|
||
var a0 = ({ serviceId: e, clientVersion: t }) => async (n) => {
|
||
var o, a, c, u, l, f;
|
||
const r = typeof window < "u" && ((o = window == null ? void 0 : window.navigator) != null && o.userAgent) ? cc.parse(window.navigator.userAgent) : void 0, s = [
|
||
["aws-sdk-js", t],
|
||
["ua", "2.1"],
|
||
[`os/${((a = r == null ? void 0 : r.os) == null ? void 0 : a.name) || "other"}`, (c = r == null ? void 0 : r.os) == null ? void 0 : c.version],
|
||
["lang/js"],
|
||
["md/browser", `${((u = r == null ? void 0 : r.browser) == null ? void 0 : u.name) ?? "unknown"}_${((l = r == null ? void 0 : r.browser) == null ? void 0 : l.version) ?? "unknown"}`]
|
||
];
|
||
e && s.push([`api/${e}`, t]);
|
||
const i = await ((f = n == null ? void 0 : n.userAgentAppId) == null ? void 0 : f.call(n));
|
||
return i && s.push([`app/${i}`]), s;
|
||
};
|
||
var Nt = class _Nt {
|
||
constructor(t) {
|
||
if (this.bytes = t, t.byteLength !== 8)
|
||
throw new Error("Int64 buffers must be exactly 8 bytes");
|
||
}
|
||
static fromNumber(t) {
|
||
if (t > 9223372036854776e3 || t < -9223372036854776e3)
|
||
throw new Error(`${t} is too large (or, if negative, too small) to represent as an Int64`);
|
||
const n = new Uint8Array(8);
|
||
for (let r = 7, s = Math.abs(Math.round(t)); r > -1 && s > 0; r--, s /= 256)
|
||
n[r] = s;
|
||
return t < 0 && mo(n), new _Nt(n);
|
||
}
|
||
valueOf() {
|
||
const t = this.bytes.slice(0), n = t[0] & 128;
|
||
return n && mo(t), parseInt(Re(t), 16) * (n ? -1 : 1);
|
||
}
|
||
toString() {
|
||
return String(this.valueOf());
|
||
}
|
||
};
|
||
function mo(e) {
|
||
for (let t = 0; t < 8; t++)
|
||
e[t] ^= 255;
|
||
for (let t = 7; t > -1 && (e[t]++, e[t] === 0); t--)
|
||
;
|
||
}
|
||
var c0 = class {
|
||
constructor(t, n) {
|
||
this.toUtf8 = t, this.fromUtf8 = n;
|
||
}
|
||
format(t) {
|
||
const n = [];
|
||
for (const i of Object.keys(t)) {
|
||
const o = this.fromUtf8(i);
|
||
n.push(Uint8Array.from([o.byteLength]), o, this.formatHeaderValue(t[i]));
|
||
}
|
||
const r = new Uint8Array(n.reduce((i, o) => i + o.byteLength, 0));
|
||
let s = 0;
|
||
for (const i of n)
|
||
r.set(i, s), s += i.byteLength;
|
||
return r;
|
||
}
|
||
formatHeaderValue(t) {
|
||
switch (t.type) {
|
||
case "boolean":
|
||
return Uint8Array.from([t.value ? 0 : 1]);
|
||
case "byte":
|
||
return Uint8Array.from([2, t.value]);
|
||
case "short":
|
||
const n = new DataView(new ArrayBuffer(3));
|
||
return n.setUint8(0, 3), n.setInt16(1, t.value, false), new Uint8Array(n.buffer);
|
||
case "integer":
|
||
const r = new DataView(new ArrayBuffer(5));
|
||
return r.setUint8(0, 4), r.setInt32(1, t.value, false), new Uint8Array(r.buffer);
|
||
case "long":
|
||
const s = new Uint8Array(9);
|
||
return s[0] = 5, s.set(t.value.bytes, 1), s;
|
||
case "binary":
|
||
const i = new DataView(new ArrayBuffer(3 + t.value.byteLength));
|
||
i.setUint8(0, 6), i.setUint16(1, t.value.byteLength, false);
|
||
const o = new Uint8Array(i.buffer);
|
||
return o.set(t.value, 3), o;
|
||
case "string":
|
||
const a = this.fromUtf8(t.value), c = new DataView(new ArrayBuffer(3 + a.byteLength));
|
||
c.setUint8(0, 7), c.setUint16(1, a.byteLength, false);
|
||
const u = new Uint8Array(c.buffer);
|
||
return u.set(a, 3), u;
|
||
case "timestamp":
|
||
const l = new Uint8Array(9);
|
||
return l[0] = 8, l.set(Nt.fromNumber(t.value.valueOf()).bytes, 1), l;
|
||
case "uuid":
|
||
if (!y0.test(t.value))
|
||
throw new Error(`Invalid UUID received: ${t.value}`);
|
||
const f = new Uint8Array(17);
|
||
return f[0] = 9, f.set(Ro(t.value.replace(/\-/g, "")), 1), f;
|
||
}
|
||
}
|
||
parse(t) {
|
||
const n = {};
|
||
let r = 0;
|
||
for (; r < t.byteLength; ) {
|
||
const s = t.getUint8(r++), i = this.toUtf8(new Uint8Array(t.buffer, t.byteOffset + r, s));
|
||
switch (r += s, t.getUint8(r++)) {
|
||
case 0:
|
||
n[i] = {
|
||
type: wo,
|
||
value: true
|
||
};
|
||
break;
|
||
case 1:
|
||
n[i] = {
|
||
type: wo,
|
||
value: false
|
||
};
|
||
break;
|
||
case 2:
|
||
n[i] = {
|
||
type: u0,
|
||
value: t.getInt8(r++)
|
||
};
|
||
break;
|
||
case 3:
|
||
n[i] = {
|
||
type: d0,
|
||
value: t.getInt16(r, false)
|
||
}, r += 2;
|
||
break;
|
||
case 4:
|
||
n[i] = {
|
||
type: l0,
|
||
value: t.getInt32(r, false)
|
||
}, r += 4;
|
||
break;
|
||
case 5:
|
||
n[i] = {
|
||
type: f0,
|
||
value: new Nt(new Uint8Array(t.buffer, t.byteOffset + r, 8))
|
||
}, r += 8;
|
||
break;
|
||
case 6:
|
||
const o = t.getUint16(r, false);
|
||
r += 2, n[i] = {
|
||
type: h0,
|
||
value: new Uint8Array(t.buffer, t.byteOffset + r, o)
|
||
}, r += o;
|
||
break;
|
||
case 7:
|
||
const a = t.getUint16(r, false);
|
||
r += 2, n[i] = {
|
||
type: p0,
|
||
value: this.toUtf8(new Uint8Array(t.buffer, t.byteOffset + r, a))
|
||
}, r += a;
|
||
break;
|
||
case 8:
|
||
n[i] = {
|
||
type: g0,
|
||
value: new Date(new Nt(new Uint8Array(t.buffer, t.byteOffset + r, 8)).valueOf())
|
||
}, r += 8;
|
||
break;
|
||
case 9:
|
||
const c = new Uint8Array(t.buffer, t.byteOffset + r, 16);
|
||
r += 16, n[i] = {
|
||
type: m0,
|
||
value: `${Re(c.subarray(0, 4))}-${Re(c.subarray(4, 6))}-${Re(c.subarray(6, 8))}-${Re(c.subarray(8, 10))}-${Re(c.subarray(10))}`
|
||
};
|
||
break;
|
||
default:
|
||
throw new Error("Unrecognized header type tag");
|
||
}
|
||
}
|
||
return n;
|
||
}
|
||
};
|
||
var yo;
|
||
(function(e) {
|
||
e[e.boolTrue = 0] = "boolTrue", e[e.boolFalse = 1] = "boolFalse", e[e.byte = 2] = "byte", e[e.short = 3] = "short", e[e.integer = 4] = "integer", e[e.long = 5] = "long", e[e.byteArray = 6] = "byteArray", e[e.string = 7] = "string", e[e.timestamp = 8] = "timestamp", e[e.uuid = 9] = "uuid";
|
||
})(yo || (yo = {}));
|
||
var wo = "boolean";
|
||
var u0 = "byte";
|
||
var d0 = "short";
|
||
var l0 = "integer";
|
||
var f0 = "long";
|
||
var h0 = "binary";
|
||
var p0 = "string";
|
||
var g0 = "timestamp";
|
||
var m0 = "uuid";
|
||
var y0 = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;
|
||
var uc = 4;
|
||
var qe = uc * 2;
|
||
var Ye = 4;
|
||
var w0 = qe + Ye * 2;
|
||
function b0({ byteLength: e, byteOffset: t, buffer: n }) {
|
||
if (e < w0)
|
||
throw new Error("Provided message too short to accommodate event stream message overhead");
|
||
const r = new DataView(n, t, e), s = r.getUint32(0, false);
|
||
if (e !== s)
|
||
throw new Error("Reported message length does not match received message length");
|
||
const i = r.getUint32(uc, false), o = r.getUint32(qe, false), a = r.getUint32(e - Ye, false), c = new Yt().update(new Uint8Array(n, t, qe));
|
||
if (o !== c.digest())
|
||
throw new Error(`The prelude checksum specified in the message (${o}) does not match the calculated CRC32 checksum (${c.digest()})`);
|
||
if (c.update(new Uint8Array(n, t + qe, e - (qe + Ye))), a !== c.digest())
|
||
throw new Error(`The message checksum (${c.digest()}) did not match the expected value of ${a}`);
|
||
return {
|
||
headers: new DataView(n, t + qe + Ye, i),
|
||
body: new Uint8Array(n, t + qe + Ye + i, s - i - (qe + Ye + Ye))
|
||
};
|
||
}
|
||
var E0 = class {
|
||
constructor(t, n) {
|
||
this.headerMarshaller = new c0(t, n), this.messageBuffer = [], this.isEndOfStream = false;
|
||
}
|
||
feed(t) {
|
||
this.messageBuffer.push(this.decode(t));
|
||
}
|
||
endOfStream() {
|
||
this.isEndOfStream = true;
|
||
}
|
||
getMessage() {
|
||
const t = this.messageBuffer.pop(), n = this.isEndOfStream;
|
||
return {
|
||
getMessage() {
|
||
return t;
|
||
},
|
||
isEndOfStream() {
|
||
return n;
|
||
}
|
||
};
|
||
}
|
||
getAvailableMessages() {
|
||
const t = this.messageBuffer;
|
||
this.messageBuffer = [];
|
||
const n = this.isEndOfStream;
|
||
return {
|
||
getMessages() {
|
||
return t;
|
||
},
|
||
isEndOfStream() {
|
||
return n;
|
||
}
|
||
};
|
||
}
|
||
encode({ headers: t, body: n }) {
|
||
const r = this.headerMarshaller.format(t), s = r.byteLength + n.byteLength + 16, i = new Uint8Array(s), o = new DataView(i.buffer, i.byteOffset, i.byteLength), a = new Yt();
|
||
return o.setUint32(0, s, false), o.setUint32(4, r.byteLength, false), o.setUint32(8, a.update(i.subarray(0, 8)).digest(), false), i.set(r, 12), i.set(n, r.byteLength + 12), o.setUint32(s - 4, a.update(i.subarray(8, s - 4)).digest(), false), i;
|
||
}
|
||
decode(t) {
|
||
const { headers: n, body: r } = b0(t);
|
||
return { headers: this.headerMarshaller.parse(n), body: r };
|
||
}
|
||
formatHeaders(t) {
|
||
return this.headerMarshaller.format(t);
|
||
}
|
||
};
|
||
var x0 = class {
|
||
constructor(t) {
|
||
this.options = t;
|
||
}
|
||
[Symbol.asyncIterator]() {
|
||
return this.asyncIterator();
|
||
}
|
||
async *asyncIterator() {
|
||
for await (const t of this.options.inputStream)
|
||
yield this.options.decoder.decode(t);
|
||
}
|
||
};
|
||
var S0 = class {
|
||
constructor(t) {
|
||
this.options = t;
|
||
}
|
||
[Symbol.asyncIterator]() {
|
||
return this.asyncIterator();
|
||
}
|
||
async *asyncIterator() {
|
||
for await (const t of this.options.messageStream)
|
||
yield this.options.encoder.encode(t);
|
||
this.options.includeEndFrame && (yield new Uint8Array(0));
|
||
}
|
||
};
|
||
var A0 = class {
|
||
constructor(t) {
|
||
this.options = t;
|
||
}
|
||
[Symbol.asyncIterator]() {
|
||
return this.asyncIterator();
|
||
}
|
||
async *asyncIterator() {
|
||
for await (const t of this.options.messageStream) {
|
||
const n = await this.options.deserializer(t);
|
||
n !== void 0 && (yield n);
|
||
}
|
||
}
|
||
};
|
||
var C0 = class {
|
||
constructor(t) {
|
||
this.options = t;
|
||
}
|
||
[Symbol.asyncIterator]() {
|
||
return this.asyncIterator();
|
||
}
|
||
async *asyncIterator() {
|
||
for await (const t of this.options.inputStream)
|
||
yield this.options.serializer(t);
|
||
}
|
||
};
|
||
function v0(e) {
|
||
let t = 0, n = 0, r = null, s = null;
|
||
const i = (a) => {
|
||
if (typeof a != "number")
|
||
throw new Error("Attempted to allocate an event message where size was not a number: " + a);
|
||
t = a, n = 4, r = new Uint8Array(a), new DataView(r.buffer).setUint32(0, a, false);
|
||
}, o = async function* () {
|
||
const a = e[Symbol.asyncIterator]();
|
||
for (; ; ) {
|
||
const { value: c, done: u } = await a.next();
|
||
if (u) {
|
||
if (t)
|
||
if (t === n)
|
||
yield r;
|
||
else
|
||
throw new Error("Truncated event message received.");
|
||
else
|
||
return;
|
||
return;
|
||
}
|
||
const l = c.length;
|
||
let f = 0;
|
||
for (; f < l; ) {
|
||
if (!r) {
|
||
const g = l - f;
|
||
s || (s = new Uint8Array(4));
|
||
const S = Math.min(4 - n, g);
|
||
if (s.set(c.slice(f, f + S), n), n += S, f += S, n < 4)
|
||
break;
|
||
i(new DataView(s.buffer).getUint32(0, false)), s = null;
|
||
}
|
||
const p = Math.min(t - n, l - f);
|
||
r.set(c.slice(f, f + p), n), n += p, f += p, t && t === n && (yield r, r = null, t = 0, n = 0);
|
||
}
|
||
}
|
||
};
|
||
return {
|
||
[Symbol.asyncIterator]: o
|
||
};
|
||
}
|
||
function R0(e, t) {
|
||
return async function(n) {
|
||
const { value: r } = n.headers[":message-type"];
|
||
if (r === "error") {
|
||
const s = new Error(n.headers[":error-message"].value || "UnknownError");
|
||
throw s.name = n.headers[":error-code"].value, s;
|
||
} else if (r === "exception") {
|
||
const s = n.headers[":exception-type"].value, i = { [s]: n }, o = await e(i);
|
||
if (o.$unknown) {
|
||
const a = new Error(t(n.body));
|
||
throw a.name = s, a;
|
||
}
|
||
throw o[s];
|
||
} else if (r === "event") {
|
||
const s = {
|
||
[n.headers[":event-type"].value]: n
|
||
}, i = await e(s);
|
||
return i.$unknown ? void 0 : i;
|
||
} else
|
||
throw Error(`Unrecognizable event type: ${n.headers[":event-type"].value}`);
|
||
};
|
||
}
|
||
var k0 = class {
|
||
constructor({ utf8Encoder: t, utf8Decoder: n }) {
|
||
this.eventStreamCodec = new E0(t, n), this.utfEncoder = t;
|
||
}
|
||
deserialize(t, n) {
|
||
const r = v0(t);
|
||
return new A0({
|
||
messageStream: new x0({ inputStream: r, decoder: this.eventStreamCodec }),
|
||
deserializer: R0(n, this.utfEncoder)
|
||
});
|
||
}
|
||
serialize(t, n) {
|
||
return new S0({
|
||
messageStream: new C0({ inputStream: t, serializer: n }),
|
||
encoder: this.eventStreamCodec,
|
||
includeEndFrame: true
|
||
});
|
||
}
|
||
};
|
||
var T0 = (e) => ({
|
||
[Symbol.asyncIterator]: async function* () {
|
||
const t = e.getReader();
|
||
try {
|
||
for (; ; ) {
|
||
const { done: n, value: r } = await t.read();
|
||
if (n)
|
||
return;
|
||
yield r;
|
||
}
|
||
} finally {
|
||
t.releaseLock();
|
||
}
|
||
}
|
||
});
|
||
var B0 = (e) => {
|
||
const t = e[Symbol.asyncIterator]();
|
||
return new ReadableStream({
|
||
async pull(n) {
|
||
const { done: r, value: s } = await t.next();
|
||
if (r)
|
||
return n.close();
|
||
n.enqueue(s);
|
||
}
|
||
});
|
||
};
|
||
var I0 = class {
|
||
constructor({ utf8Encoder: t, utf8Decoder: n }) {
|
||
this.universalMarshaller = new k0({
|
||
utf8Decoder: n,
|
||
utf8Encoder: t
|
||
});
|
||
}
|
||
deserialize(t, n) {
|
||
const r = _0(t) ? T0(t) : t;
|
||
return this.universalMarshaller.deserialize(r, n);
|
||
}
|
||
serialize(t, n) {
|
||
const r = this.universalMarshaller.serialize(t, n);
|
||
return typeof ReadableStream == "function" ? B0(r) : r;
|
||
}
|
||
};
|
||
var _0 = (e) => typeof ReadableStream == "function" && e instanceof ReadableStream;
|
||
var P0 = (e) => new I0(e);
|
||
async function N0(e, t, n = 1024 * 1024) {
|
||
const r = e.size;
|
||
let s = 0;
|
||
for (; s < r; ) {
|
||
const i = e.slice(s, Math.min(r, s + n));
|
||
t(new Uint8Array(await i.arrayBuffer())), s += i.size;
|
||
}
|
||
}
|
||
var M0 = async function(t, n) {
|
||
const r = new t();
|
||
return await N0(n, (s) => {
|
||
r.update(s);
|
||
}), r.digest();
|
||
};
|
||
var F0 = (e) => () => Promise.reject(e);
|
||
var ze = 64;
|
||
var O0 = 16;
|
||
var D0 = [1732584193, 4023233417, 2562383102, 271733878];
|
||
var U0 = class {
|
||
constructor() {
|
||
this.reset();
|
||
}
|
||
update(t) {
|
||
if ($0(t))
|
||
return;
|
||
if (this.finished)
|
||
throw new Error("Attempted to update an already finished hash.");
|
||
const n = L0(t);
|
||
let r = 0, { byteLength: s } = n;
|
||
for (this.bytesHashed += s; s > 0; )
|
||
this.buffer.setUint8(this.bufferLength++, n[r++]), s--, this.bufferLength === ze && (this.hashBuffer(), this.bufferLength = 0);
|
||
}
|
||
async digest() {
|
||
if (!this.finished) {
|
||
const { buffer: n, bufferLength: r, bytesHashed: s } = this, i = s * 8;
|
||
if (n.setUint8(this.bufferLength++, 128), r % ze >= ze - 8) {
|
||
for (let o = this.bufferLength; o < ze; o++)
|
||
n.setUint8(o, 0);
|
||
this.hashBuffer(), this.bufferLength = 0;
|
||
}
|
||
for (let o = this.bufferLength; o < ze - 8; o++)
|
||
n.setUint8(o, 0);
|
||
n.setUint32(ze - 8, i >>> 0, true), n.setUint32(ze - 4, Math.floor(i / 4294967296), true), this.hashBuffer(), this.finished = true;
|
||
}
|
||
const t = new DataView(new ArrayBuffer(O0));
|
||
for (let n = 0; n < 4; n++)
|
||
t.setUint32(n * 4, this.state[n], true);
|
||
return new Uint8Array(t.buffer, t.byteOffset, t.byteLength);
|
||
}
|
||
hashBuffer() {
|
||
const { buffer: t, state: n } = this;
|
||
let r = n[0], s = n[1], i = n[2], o = n[3];
|
||
r = ge(r, s, i, o, t.getUint32(0, true), 7, 3614090360), o = ge(o, r, s, i, t.getUint32(4, true), 12, 3905402710), i = ge(i, o, r, s, t.getUint32(8, true), 17, 606105819), s = ge(s, i, o, r, t.getUint32(12, true), 22, 3250441966), r = ge(r, s, i, o, t.getUint32(16, true), 7, 4118548399), o = ge(o, r, s, i, t.getUint32(20, true), 12, 1200080426), i = ge(i, o, r, s, t.getUint32(24, true), 17, 2821735955), s = ge(s, i, o, r, t.getUint32(28, true), 22, 4249261313), r = ge(r, s, i, o, t.getUint32(32, true), 7, 1770035416), o = ge(o, r, s, i, t.getUint32(36, true), 12, 2336552879), i = ge(i, o, r, s, t.getUint32(40, true), 17, 4294925233), s = ge(s, i, o, r, t.getUint32(44, true), 22, 2304563134), r = ge(r, s, i, o, t.getUint32(48, true), 7, 1804603682), o = ge(o, r, s, i, t.getUint32(52, true), 12, 4254626195), i = ge(i, o, r, s, t.getUint32(56, true), 17, 2792965006), s = ge(s, i, o, r, t.getUint32(60, true), 22, 1236535329), r = me(r, s, i, o, t.getUint32(4, true), 5, 4129170786), o = me(o, r, s, i, t.getUint32(24, true), 9, 3225465664), i = me(i, o, r, s, t.getUint32(44, true), 14, 643717713), s = me(s, i, o, r, t.getUint32(0, true), 20, 3921069994), r = me(r, s, i, o, t.getUint32(20, true), 5, 3593408605), o = me(o, r, s, i, t.getUint32(40, true), 9, 38016083), i = me(i, o, r, s, t.getUint32(60, true), 14, 3634488961), s = me(s, i, o, r, t.getUint32(16, true), 20, 3889429448), r = me(r, s, i, o, t.getUint32(36, true), 5, 568446438), o = me(o, r, s, i, t.getUint32(56, true), 9, 3275163606), i = me(i, o, r, s, t.getUint32(12, true), 14, 4107603335), s = me(s, i, o, r, t.getUint32(32, true), 20, 1163531501), r = me(r, s, i, o, t.getUint32(52, true), 5, 2850285829), o = me(o, r, s, i, t.getUint32(8, true), 9, 4243563512), i = me(i, o, r, s, t.getUint32(28, true), 14, 1735328473), s = me(s, i, o, r, t.getUint32(48, true), 20, 2368359562), r = ye(r, s, i, o, t.getUint32(20, true), 4, 4294588738), o = ye(o, r, s, i, t.getUint32(32, true), 11, 2272392833), i = ye(i, o, r, s, t.getUint32(44, true), 16, 1839030562), s = ye(s, i, o, r, t.getUint32(56, true), 23, 4259657740), r = ye(r, s, i, o, t.getUint32(4, true), 4, 2763975236), o = ye(o, r, s, i, t.getUint32(16, true), 11, 1272893353), i = ye(i, o, r, s, t.getUint32(28, true), 16, 4139469664), s = ye(s, i, o, r, t.getUint32(40, true), 23, 3200236656), r = ye(r, s, i, o, t.getUint32(52, true), 4, 681279174), o = ye(o, r, s, i, t.getUint32(0, true), 11, 3936430074), i = ye(i, o, r, s, t.getUint32(12, true), 16, 3572445317), s = ye(s, i, o, r, t.getUint32(24, true), 23, 76029189), r = ye(r, s, i, o, t.getUint32(36, true), 4, 3654602809), o = ye(o, r, s, i, t.getUint32(48, true), 11, 3873151461), i = ye(i, o, r, s, t.getUint32(60, true), 16, 530742520), s = ye(s, i, o, r, t.getUint32(8, true), 23, 3299628645), r = we(r, s, i, o, t.getUint32(0, true), 6, 4096336452), o = we(o, r, s, i, t.getUint32(28, true), 10, 1126891415), i = we(i, o, r, s, t.getUint32(56, true), 15, 2878612391), s = we(s, i, o, r, t.getUint32(20, true), 21, 4237533241), r = we(r, s, i, o, t.getUint32(48, true), 6, 1700485571), o = we(o, r, s, i, t.getUint32(12, true), 10, 2399980690), i = we(i, o, r, s, t.getUint32(40, true), 15, 4293915773), s = we(s, i, o, r, t.getUint32(4, true), 21, 2240044497), r = we(r, s, i, o, t.getUint32(32, true), 6, 1873313359), o = we(o, r, s, i, t.getUint32(60, true), 10, 4264355552), i = we(i, o, r, s, t.getUint32(24, true), 15, 2734768916), s = we(s, i, o, r, t.getUint32(52, true), 21, 1309151649), r = we(r, s, i, o, t.getUint32(16, true), 6, 4149444226), o = we(o, r, s, i, t.getUint32(44, true), 10, 3174756917), i = we(i, o, r, s, t.getUint32(8, true), 15, 718787259), s = we(s, i, o, r, t.getUint32(36, true), 21, 3951481745), n[0] = r + n[0] & 4294967295, n[1] = s + n[1] & 4294967295, n[2] = i + n[2] & 4294967295, n[3] = o + n[3] & 4294967295;
|
||
}
|
||
reset() {
|
||
this.state = Uint32Array.from(D0), this.buffer = new DataView(new ArrayBuffer(ze)), this.bufferLength = 0, this.bytesHashed = 0, this.finished = false;
|
||
}
|
||
};
|
||
function wn(e, t, n, r, s, i) {
|
||
return t = (t + e & 4294967295) + (r + i & 4294967295) & 4294967295, (t << s | t >>> 32 - s) + n & 4294967295;
|
||
}
|
||
function ge(e, t, n, r, s, i, o) {
|
||
return wn(t & n | ~t & r, e, t, s, i, o);
|
||
}
|
||
function me(e, t, n, r, s, i, o) {
|
||
return wn(t & r | n & ~r, e, t, s, i, o);
|
||
}
|
||
function ye(e, t, n, r, s, i, o) {
|
||
return wn(t ^ n ^ r, e, t, s, i, o);
|
||
}
|
||
function we(e, t, n, r, s, i, o) {
|
||
return wn(n ^ (t | ~r), e, t, s, i, o);
|
||
}
|
||
function $0(e) {
|
||
return typeof e == "string" ? e.length === 0 : e.byteLength === 0;
|
||
}
|
||
function L0(e) {
|
||
return typeof e == "string" ? ot(e) : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength / Uint8Array.BYTES_PER_ELEMENT) : new Uint8Array(e);
|
||
}
|
||
var H0 = (e) => ({
|
||
apiVersion: "2006-03-01",
|
||
base64Decoder: (e == null ? void 0 : e.base64Decoder) ?? Ar,
|
||
base64Encoder: (e == null ? void 0 : e.base64Encoder) ?? cn,
|
||
disableHostPrefix: (e == null ? void 0 : e.disableHostPrefix) ?? false,
|
||
endpointProvider: (e == null ? void 0 : e.endpointProvider) ?? $a,
|
||
extensions: (e == null ? void 0 : e.extensions) ?? [],
|
||
getAwsChunkedEncodingStream: (e == null ? void 0 : e.getAwsChunkedEncodingStream) ?? Qc,
|
||
httpAuthSchemeProvider: (e == null ? void 0 : e.httpAuthSchemeProvider) ?? $p,
|
||
httpAuthSchemes: (e == null ? void 0 : e.httpAuthSchemes) ?? [
|
||
{
|
||
schemeId: "aws.auth#sigv4",
|
||
identityProvider: (t) => t.getIdentityProvider("aws.auth#sigv4"),
|
||
signer: new Eo()
|
||
},
|
||
{
|
||
schemeId: "aws.auth#sigv4a",
|
||
identityProvider: (t) => t.getIdentityProvider("aws.auth#sigv4a"),
|
||
signer: new kc()
|
||
}
|
||
],
|
||
logger: (e == null ? void 0 : e.logger) ?? new kr(),
|
||
sdkStreamMixin: (e == null ? void 0 : e.sdkStreamMixin) ?? iu,
|
||
serviceId: (e == null ? void 0 : e.serviceId) ?? "S3",
|
||
signerConstructor: (e == null ? void 0 : e.signerConstructor) ?? Sa,
|
||
signingEscapePath: (e == null ? void 0 : e.signingEscapePath) ?? false,
|
||
urlParser: (e == null ? void 0 : e.urlParser) ?? en,
|
||
useArnRegion: (e == null ? void 0 : e.useArnRegion) ?? void 0,
|
||
utf8Decoder: (e == null ? void 0 : e.utf8Decoder) ?? ot,
|
||
utf8Encoder: (e == null ? void 0 : e.utf8Encoder) ?? Cr
|
||
});
|
||
var z0 = ["in-region", "cross-region", "mobile", "standard", "legacy"];
|
||
var j0 = ({ defaultsMode: e } = {}) => Mu(async () => {
|
||
const t = typeof e == "function" ? await e() : e;
|
||
switch (t == null ? void 0 : t.toLowerCase()) {
|
||
case "auto":
|
||
return Promise.resolve(q0() ? "mobile" : "standard");
|
||
case "mobile":
|
||
case "in-region":
|
||
case "cross-region":
|
||
case "standard":
|
||
case "legacy":
|
||
return Promise.resolve(t == null ? void 0 : t.toLocaleLowerCase());
|
||
case void 0:
|
||
return Promise.resolve("legacy");
|
||
default:
|
||
throw new Error(`Invalid parameter for "defaultsMode", expect ${z0.join(", ")}, got ${t}`);
|
||
}
|
||
});
|
||
var q0 = () => {
|
||
var n, r;
|
||
const e = typeof window < "u" && ((n = window == null ? void 0 : window.navigator) != null && n.userAgent) ? cc.parse(window.navigator.userAgent) : void 0, t = (r = e == null ? void 0 : e.platform) == null ? void 0 : r.type;
|
||
return t === "tablet" || t === "mobile";
|
||
};
|
||
var V0 = (e) => {
|
||
const t = j0(e), n = () => t().then(md), r = H0(e);
|
||
return {
|
||
...r,
|
||
...e,
|
||
runtime: "browser",
|
||
defaultsMode: t,
|
||
bodyLengthChecker: (e == null ? void 0 : e.bodyLengthChecker) ?? dd,
|
||
credentialDefaultProvider: (e == null ? void 0 : e.credentialDefaultProvider) ?? ((s) => () => Promise.reject(new Error("Credential is missing"))),
|
||
defaultUserAgentProvider: (e == null ? void 0 : e.defaultUserAgentProvider) ?? a0({ serviceId: r.serviceId, clientVersion: $m.version }),
|
||
eventStreamSerdeProvider: (e == null ? void 0 : e.eventStreamSerdeProvider) ?? P0,
|
||
maxAttempts: (e == null ? void 0 : e.maxAttempts) ?? Fr,
|
||
md5: (e == null ? void 0 : e.md5) ?? U0,
|
||
region: (e == null ? void 0 : e.region) ?? F0("Region is missing"),
|
||
requestHandler: vr.create((e == null ? void 0 : e.requestHandler) ?? n),
|
||
retryMode: (e == null ? void 0 : e.retryMode) ?? (async () => (await n()).retryMode || jh),
|
||
sha1: (e == null ? void 0 : e.sha1) ?? Wm,
|
||
sha256: (e == null ? void 0 : e.sha256) ?? t0,
|
||
streamCollector: (e == null ? void 0 : e.streamCollector) ?? Co,
|
||
streamHasher: (e == null ? void 0 : e.streamHasher) ?? M0,
|
||
useDualstackEndpoint: (e == null ? void 0 : e.useDualstackEndpoint) ?? (() => Promise.resolve(vh)),
|
||
useFipsEndpoint: (e == null ? void 0 : e.useFipsEndpoint) ?? (() => Promise.resolve(Rh))
|
||
};
|
||
};
|
||
var W0 = (e) => ({
|
||
setRegion(t) {
|
||
e.region = t;
|
||
},
|
||
region() {
|
||
return e.region;
|
||
}
|
||
});
|
||
var K0 = (e) => ({
|
||
region: e.region()
|
||
});
|
||
var G0 = (e) => {
|
||
const t = e.httpAuthSchemes;
|
||
let n = e.httpAuthSchemeProvider, r = e.credentials;
|
||
return {
|
||
setHttpAuthScheme(s) {
|
||
const i = t.findIndex((o) => o.schemeId === s.schemeId);
|
||
i === -1 ? t.push(s) : t.splice(i, 1, s);
|
||
},
|
||
httpAuthSchemes() {
|
||
return t;
|
||
},
|
||
setHttpAuthSchemeProvider(s) {
|
||
n = s;
|
||
},
|
||
httpAuthSchemeProvider() {
|
||
return n;
|
||
},
|
||
setCredentials(s) {
|
||
r = s;
|
||
},
|
||
credentials() {
|
||
return r;
|
||
}
|
||
};
|
||
};
|
||
var Z0 = (e) => ({
|
||
httpAuthSchemes: e.httpAuthSchemes(),
|
||
httpAuthSchemeProvider: e.httpAuthSchemeProvider(),
|
||
credentials: e.credentials()
|
||
});
|
||
var X0 = (e, t) => {
|
||
const n = Object.assign(W0(e), xd(e), yc(e), G0(e));
|
||
return t.forEach((r) => r.configure(n)), Object.assign(e, K0(n), Sd(n), wc(n), Z0(n));
|
||
};
|
||
var Q0 = class extends ld {
|
||
constructor(...[n]) {
|
||
const r = V0(n || {});
|
||
super(r);
|
||
_(this, "config");
|
||
this.initConfig = r;
|
||
const s = Hp(r), i = Hf(s), o = Wl(i), a = fp(o), c = kh(a), u = c, l = zh(u), f = Th(l), p = Lp(f), g = kf(p, { session: [() => this, Em] }), S = X0(g, (n == null ? void 0 : n.extensions) || []);
|
||
this.config = S, this.middlewareStack.use(Ch(this.config)), this.middlewareStack.use(bp(this.config)), this.middlewareStack.use(_h(this.config)), this.middlewareStack.use(Zl(this.config)), this.middlewareStack.use(Yl(this.config)), this.middlewareStack.use(rf(this.config)), this.middlewareStack.use(Pc(this.config, {
|
||
httpAuthSchemeParametersProvider: Op,
|
||
identityProviderConfigProvider: async (T) => new Bu({
|
||
"aws.auth#sigv4": T.credentials,
|
||
"aws.auth#sigv4a": T.credentials
|
||
})
|
||
})), this.middlewareStack.use($c(this.config)), this.middlewareStack.use(Uf(this.config)), this.middlewareStack.use(Sc(this.config)), this.middlewareStack.use(pf(this.config)), this.middlewareStack.use(xf(this.config)), this.middlewareStack.use(Rf(this.config));
|
||
}
|
||
destroy() {
|
||
super.destroy();
|
||
}
|
||
};
|
||
function Y0(e) {
|
||
return (t) => async (n) => {
|
||
const r = { ...n.input }, s = [
|
||
{
|
||
target: "SSECustomerKey",
|
||
hash: "SSECustomerKeyMD5"
|
||
},
|
||
{
|
||
target: "CopySourceSSECustomerKey",
|
||
hash: "CopySourceSSECustomerKeyMD5"
|
||
}
|
||
];
|
||
for (const i of s) {
|
||
const o = r[i.target];
|
||
if (o) {
|
||
let a;
|
||
typeof o == "string" ? ty(o, e) ? a = e.base64Decoder(o) : (a = e.utf8Decoder(o), r[i.target] = e.base64Encoder(a)) : (a = ArrayBuffer.isView(o) ? new Uint8Array(o.buffer, o.byteOffset, o.byteLength) : new Uint8Array(o), r[i.target] = e.base64Encoder(a));
|
||
const c = new e.md5();
|
||
c.update(a), r[i.hash] = e.base64Encoder(await c.digest());
|
||
}
|
||
}
|
||
return t({
|
||
...n,
|
||
input: r
|
||
});
|
||
};
|
||
}
|
||
var J0 = {
|
||
name: "ssecMiddleware",
|
||
step: "initialize",
|
||
tags: ["SSE"],
|
||
override: true
|
||
};
|
||
var ey = (e) => ({
|
||
applyToStack: (t) => {
|
||
t.add(Y0(e), J0);
|
||
}
|
||
});
|
||
function ty(e, t) {
|
||
if (!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e))
|
||
return false;
|
||
try {
|
||
return t.base64Decoder(e).length === 32;
|
||
} catch {
|
||
return false;
|
||
}
|
||
}
|
||
var ny = class extends Rr.classBuilder().ep({
|
||
...za,
|
||
Bucket: { type: "contextParams", name: "Bucket" },
|
||
Key: { type: "contextParams", name: "Key" }
|
||
}).m(function(t, n, r, s) {
|
||
return [
|
||
So(r, this.serialize, this.deserialize),
|
||
wa(r, t.getEndpointParameterInstructions()),
|
||
Vl(r, {
|
||
requestAlgorithmMember: { httpHeader: "x-amz-sdk-checksum-algorithm", name: "ChecksumAlgorithm" },
|
||
requestChecksumRequired: false
|
||
}),
|
||
uf(),
|
||
sa(r),
|
||
ey(r)
|
||
];
|
||
}).s("AmazonS3", "PutObject", {}).n("S3Client", "PutObjectCommand").f(Wp, Vp).ser(Gp).de(Xp).build() {
|
||
};
|
||
var ry = axios_default.create({});
|
||
async function sy(e, t, n) {
|
||
return e.getSignedUrl || console.error("请先配置uploader.getSignedUrl,该方法应该从后端获取签名url"), await e.getSignedUrl(e.bucket, t, e, n);
|
||
}
|
||
async function iy(e, t) {
|
||
const { file: n, onProgress: r, options: s } = e, o = await sy(s, t, "put"), a = decodeURIComponent(o);
|
||
return await ry.put(a, n, {
|
||
onUploadProgress: (c) => {
|
||
const { loaded: u, total: l } = c;
|
||
r({ percent: Math.round(u * 100 / l) });
|
||
}
|
||
});
|
||
}
|
||
async function oy(e) {
|
||
const { file: t, fileName: n, onProgress: r, options: s } = e, i = s, o = new Q0({
|
||
...(i == null ? void 0 : i.sdkOpts) || {}
|
||
}), a = await yt(t, n, i);
|
||
async function c() {
|
||
const u = { url: i.sdkOpts.endpoint + "/" + i.bucket + "/" + a, key: a };
|
||
return i.successHandle ? await i.successHandle(u) : u;
|
||
}
|
||
if (i.getSignedUrl)
|
||
await iy(e, a);
|
||
else {
|
||
const u = {
|
||
Bucket: i.bucket,
|
||
Key: a
|
||
// The name of the object. For example, 'sample_upload.txt'.
|
||
};
|
||
await o.send(new ny({ Body: t, ...u }));
|
||
}
|
||
return await c();
|
||
}
|
||
async function py(e) {
|
||
const { getConfig: t } = gt(), n = t("s3"), r = e.options, s = merge_default(cloneDeep_default(n), r);
|
||
return e.options = s, await oy(e);
|
||
}
|
||
export {
|
||
sy as buildSignedUrl,
|
||
py as upload,
|
||
iy as uploadUsingSignedUrl
|
||
};
|
||
/*! Bundled license information:
|
||
|
||
@fast-crud/fast-extends/dist/uploader-s3-77927a69.mjs:
|
||
(*!
|
||
* Bowser - a browser detector
|
||
* https://github.com/lancedikson/bowser
|
||
* MIT License | (c) Dustin Diaz 2012-2015
|
||
* MIT License | (c) Denis Demchenko 2015-2019
|
||
*)
|
||
*/
|
||
//# sourceMappingURL=uploader-s3-77927a69-S7TFTL7S.js.map
|