@nebula.js/stardust 7.3.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"auth-Cndp79dH-oKjUi_TZ.js","sources":["../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/auth-types.js","../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/chunks/interceptors-_UakH7Gk.js","../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/chunks/auth-Cndp79dH.js"],"sourcesContent":["//#region src/auth/auth-types.ts\n/**\n* These properties are always allowed in the host config, even if they are not defined in the HostConfig interface\n* for the specific auth module.\n*/\nconst hostConfigCommonProperties = [\n\t\"authType\",\n\t\"autoRedirect\",\n\t\"authRedirectUserConfirmation\",\n\t\"embedRuntimeUrl\",\n\t\"host\",\n\t\"onAuthFailed\"\n];\nconst authTypesThatCanBeOmitted = [\n\t\"apikey\",\n\t\"oauth2\",\n\t\"cookie\",\n\t\"windowscookie\",\n\t\"reference\",\n\t\"anonymous\",\n\t\"pfx\"\n];\n\n//#endregion\nexport { authTypesThatCanBeOmitted, hostConfigCommonProperties };","import { a as sortKeys, i as isNode, r as isBrowser, t as cleanFalsyValues } from \"./utils-6sNODUN0.js\";\nimport { authTypesThatCanBeOmitted, hostConfigCommonProperties } from \"../auth-types.js\";\n\n//#region src/platform/platform-functions.ts\nconst getPlatform = async (options = {}) => {\n\tconst hc = resolveHostConfig(options.hostConfig);\n\tif (hc.authType === \"mock-backend-rest-recorder\") return hc.recordGetPlatform();\n\tif (hc?.authType === \"mock-backend\") return hc.mockGetPlatform();\n\tif (hc?.authType === \"noauth\") return result({ isUnknown: true });\n\tlet productInfo = isBrowser() ? window.QlikMain?.PRODUCT_INFO : void 0;\n\tif (!productInfo) {\n\t\tconst { data, status } = await getProductInfo(options);\n\t\tproductInfo = data;\n\t\tif (status === 404) return result({ isUnknown: true });\n\t\tif (!productInfo || status <= 399 && status >= 300) return result({\n\t\t\tisQSE: true,\n\t\t\tisWindows: true\n\t\t});\n\t}\n\tconst deploymentType = (productInfo.composition?.deploymentType || \"\").toLowerCase();\n\tif (deploymentType === \"qliksenseserver\") return result({\n\t\tisQSE: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"qliksensedesktop\") return result({\n\t\tisQSD: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"qliksensemobile\") return result({\n\t\tisQSE: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"cloud-console\") return result({\n\t\tisCloud: true,\n\t\tisCloudConsole: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (productInfo.composition?.provider === \"fedramp\") return result({\n\t\tisCloud: true,\n\t\tisQCG: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\treturn result({\n\t\tisCloud: true,\n\t\tisQCS: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n};\nconst productInfoPromises = {};\n/**\n* Retrieves the full complete url to the product-info file. The full URL\n* is the cache key. Without templating the URL we'd cache `\"\"` as an entry.\n* @private\n*/\nfunction templateUrl(baseUrl) {\n\treturn `${baseUrl}/resources/autogenerated/product-info.json`;\n}\n/**\n* Retrieves the product information as a JSON object.\n* It makes an HTTP GET request to fetch the autogenerated product-info.json file.\n*\n* `data` is `undefined` if the file can not be retrieved.\n*/\nconst getProductInfo = async ({ hostConfig, noCache } = {}) => {\n\tconst completeUrl = templateUrl(toValidLocationUrl(hostConfig));\n\ttry {\n\t\tif (!(completeUrl in productInfoPromises)) {\n\t\t\tconst fetchOptions = {};\n\t\t\tif (globalThis.QlikMain?.resourceNeedsCredentials(completeUrl)) fetchOptions.credentials = \"include\";\n\t\t\tconst productInfoPromise = fetch(completeUrl, fetchOptions).then(async (res) => {\n\t\t\t\tif (res.ok) return {\n\t\t\t\t\tdata: await res.json(),\n\t\t\t\t\tstatus: res.status\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\tstatus: res.status\n\t\t\t\t};\n\t\t\t});\n\t\t\tproductInfoPromises[completeUrl] = productInfoPromise;\n\t\t}\n\t\tconst response = await productInfoPromises[completeUrl];\n\t\tif (response.status >= 400 || !response.data) delete productInfoPromises[completeUrl];\n\t\treturn response;\n\t} catch {\n\t\tdelete productInfoPromises[completeUrl];\n\t\treturn {\n\t\t\tdata: void 0,\n\t\t\tstatus: 500\n\t\t};\n\t} finally {\n\t\tif (noCache) delete productInfoPromises[completeUrl];\n\t}\n};\n/** @internal */\nconst extractMeta = (data) => {\n\tconst urls = data.externalUrls;\n\tif (!urls) return;\n\tconst productName = data.composition?.productName ?? \"Qlik\";\n\tconst releaseLabel = data.composition?.releaseLabel || \"-\";\n\tconst productLabel = releaseLabel === \"-\" ? productName : `${productName} (${releaseLabel})`;\n\treturn {\n\t\tproductId: data.composition?.senseId ?? \"qlik\",\n\t\tproductLabel,\n\t\tversion: data.composition?.version,\n\t\turls: {\n\t\t\tpersonalHelpBaseUrl: urls.personalHelpBaseUrl,\n\t\t\tpersonalUpgradeBase: urls.personalUpgradeBase,\n\t\t\tpersonalUpgradeUrl: urls.personalUpgradeUrl,\n\t\t\tserverHelpBaseUrl: urls.serverHelpBaseUrl,\n\t\t\tqlikWebPageUrl: urls.qlikWebPageUrl\n\t\t}\n\t};\n};\nconst result = (data) => ({\n\tisCloud: false,\n\tisQCS: false,\n\tisQCG: false,\n\tisCloudConsole: false,\n\tisWindows: false,\n\tisQSE: false,\n\tisQSD: false,\n\tisUnknown: false,\n\t...data\n});\n\n//#endregion\n//#region src/utils/random.ts\nconst NANOID_ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-\";\nconst HEX_ALPHABET = \"0123456789abcdef\";\n/**\n* Generates a random string from the given alphabet using crypto.getRandomValues\n* Works in both browser and Node.js environments\n*/\nfunction generateRandomFromAlphabet(alphabet, length) {\n\tconst bytes = new Uint8Array(length);\n\tglobalThis.crypto.getRandomValues(bytes);\n\tlet result = \"\";\n\tfor (let i = 0; i < length; i++) result += alphabet[bytes[i] % alphabet.length];\n\treturn result;\n}\n/**\n* Method helper for generating a random string [a-zA-Z0-9\\-_]{length}\n* @param length - the length of the string\n*/\nfunction generateRandomString(targetLength) {\n\treturn generateRandomFromAlphabet(NANOID_ALPHABET, targetLength);\n}\n/**\n* Method helper for generating a random hexadecimal-string [0-9a-f]{length}\n* @param length - the length of the string\n*/\nfunction generateRandomHexString(targetLength) {\n\treturn generateRandomFromAlphabet(HEX_ALPHABET, targetLength);\n}\n\n//#endregion\n//#region src/auth/internal/host-config-functions.ts\nconst emptyHostConfig = {};\nconst normalizedHostConfigs = /* @__PURE__ */ new Map();\n/**\n* Returns a new host config with all default and falsy values removed.\n* @param hostConfig - The host config to fill with defaults\n* @returns\n*/\nfunction removeDefaults(hostConfig) {\n\tconst cleanedHostConfig = cleanFalsyValues(hostConfig) || {};\n\tif (cleanedHostConfig.host) cleanedHostConfig.host = toValidLocationUrl(cleanedHostConfig);\n\tif (isBrowser()) {\n\t\tif (toValidLocationUrl(cleanedHostConfig) === window.location.origin) delete cleanedHostConfig.host;\n\t}\n\tif (cleanedHostConfig.authType && authTypesThatCanBeOmitted.includes(cleanedHostConfig.authType)) delete cleanedHostConfig.authType;\n\treturn cleanedHostConfig;\n}\nfunction globalReplacer(key, value) {\n\tif (typeof value === \"function\") return;\n\treturn value;\n}\n/**\n* Serializes the provided hostConfig, if present, otherwise the default one.\n*/\nfunction serializeHostConfig$1(hostConfig) {\n\tconst sorted = sortKeys(removeDefaults(resolveHostConfig(hostConfig)));\n\treturn JSON.stringify(sorted, globalReplacer);\n}\nconst registeredHostConfigs = /* @__PURE__ */ new Map();\n/**\n* Registers a host config with the given name.\n* @param name The name of the host config to be used to reference the host config later.\n* @param hostConfig The host config to register.\n*/\nfunction registerHostConfig$1(name, hostConfig) {\n\tconst reference = hostConfig?.reference || null;\n\tif (reference && !registeredHostConfigs.has(reference)) throw new InvalidHostConfigError(`Host config with reference \"${reference}\" is not registered. Please register it before using it.`);\n\tif (registeredHostConfigs.has(name)) console.warn(`registerHostConfig: Host config with name \"${name}\" is already registered. Overwriting.`);\n\tregisteredHostConfigs.set(name, hostConfig);\n}\n/**\n* Unregisters a host config with the given name.\n* @param name The name of the host config to unregister.\n*/\nfunction unregisterHostConfig$1(name) {\n\tif (registeredHostConfigs.has(name)) registeredHostConfigs.delete(name);\n\telse console.warn(`unregisterHostConfig: Host config with name \"${name}\" not found.`);\n}\n/**\n* Gets the host config with the given name.\n* @private\n* @param name The name of the host config to get.\n* @returns The host config, or undefined if not found.\n*/\nfunction getRegisteredHostConfig(name) {\n\treturn registeredHostConfigs.get(name);\n}\n/**\n* Sets the default host config that will be used for all api calls that do not include a HostConfig\n* @private\n* @param hostConfig the default HostConfig to use\n*/\nfunction setDefaultHostConfig$1(hostConfig) {\n\tregisterHostConfig$1(\"default\", hostConfig || {});\n}\n/**\n* Gets the default host config that will be used for all qmfe api calls that do not include a HostConfig.\n* @private\n* @returns The default host config that will be used for all qmfe api calls that do not include a HostConfig\n*/\nfunction getDefaultHostConfig$1() {\n\treturn getRegisteredHostConfig(\"default\") || {};\n}\nfunction normalizeHostConfig$1(hostConfig) {\n\tconst suppliedHostConfigOrEmpty = hostConfig || emptyHostConfig;\n\tconst serializedHostConfigKey = serializeHostConfig$1(suppliedHostConfigOrEmpty);\n\tlet normalizedHostConfig = normalizedHostConfigs.get(serializedHostConfigKey);\n\tif (!normalizedHostConfig) {\n\t\tnormalizedHostConfig = removeDefaults(resolveHostConfig(suppliedHostConfigOrEmpty));\n\t\tnormalizedHostConfigs.set(serializedHostConfigKey, normalizedHostConfig);\n\t}\n\treturn normalizedHostConfig;\n}\n\n//#endregion\n//#region src/auth/internal/page-redirect-request-listeners.ts\n/**\n* A store containing all listener registries for different host configurations.\n*/\nconst listenerRegistries$1 = /* @__PURE__ */ new Map();\n/**\n* Retrieves the listener registry for a given host configuration, creating one if it doesn't exist.\n*/\nfunction getRegistryForHostConfig(hostConfig) {\n\tconst key = serializeHostConfig$1(hostConfig);\n\tlet registry = listenerRegistries$1.get(key);\n\tif (!registry) {\n\t\tregistry = {\n\t\t\tredirectRequestedListeners: /* @__PURE__ */ new Set(),\n\t\t\tredirectStartedListeners: /* @__PURE__ */ new Set()\n\t\t};\n\t\tlistenerRegistries$1.set(key, registry);\n\t}\n\treturn registry;\n}\n/**\n* Registers a listener for page redirects requested by auth modules.\n* @param hostConfig\n* @param listener\n* @returns\n*/\nfunction onPageRedirectRequested$1(hostConfig, listener) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tregistry.redirectRequestedListeners.add(listener);\n\treturn () => {\n\t\tregistry.redirectRequestedListeners.delete(listener);\n\t};\n}\nfunction onPageRedirectStarted$1(hostConfig, listener) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tregistry.redirectStartedListeners.add(listener);\n\treturn () => {\n\t\tregistry.redirectStartedListeners.delete(listener);\n\t};\n}\nfunction requestRedirect(hostConfig) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tconst hasRedirectListener = registry.redirectRequestedListeners.size > 0 || hostConfig.authRedirectUserConfirmation;\n\tif (hostConfig.autoRedirect || !hasRedirectListener) return Promise.resolve();\n\tif (typeof hostConfig.authRedirectUserConfirmation === \"function\") return hostConfig.authRedirectUserConfirmation().catch(() => {});\n\treturn new Promise((resolve) => {\n\t\tconst proceed = () => {\n\t\t\tfor (const startedListener of registry.redirectStartedListeners) try {\n\t\t\t\tstartedListener();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn(error);\n\t\t\t}\n\t\t\tresolve();\n\t\t};\n\t\tfor (const requestListener of registry.redirectRequestedListeners) try {\n\t\t\trequestListener({ proceed });\n\t\t} catch (error) {\n\t\t\tconsole.warn(error);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/utils/expose-internal-test-apis.ts\nfunction exposeInternalApiOnWindow(name, fn) {\n\tconst hostname = globalThis.location?.hostname?.toLowerCase();\n\tconst isLocalhost = hostname === \"localhost\";\n\tconst isQlikStageDomain = hostname?.endsWith(\".qlik-stage.com\");\n\tif (isLocalhost || isQlikStageDomain) {\n\t\tif (globalThis.QlikMain) {\n\t\t\tif (globalThis.QlikMain.INTERNAL__DO_NOT_USE.qix === void 0) globalThis.QlikMain.INTERNAL__DO_NOT_USE.qix = {};\n\t\t\tglobalThis.QlikMain.INTERNAL__DO_NOT_USE.qix[name] = fn;\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/storage-helpers.ts\nconst storagePrefix = \"qlik-qmfe-api\";\nfunction getTopicFromOauthHostConfig(hostConfig) {\n\tlet topic = hostConfig.clientId + (hostConfig.scope ? `_${hostConfig.scope}` : \"_user_default\");\n\tif (hostConfig.subject) topic += `_${hostConfig.subject}`;\n\tif (hostConfig.userId) topic += `_${hostConfig.userId}`;\n\treturn topic;\n}\nfunction getTopicFromAnonHostConfig(hostConfig) {\n\treturn `${hostConfig.accessCode}_${hostConfig.clientId}`;\n}\n/**\n* A map from oauth client id to promise of an access token\n*/\nconst cachedTokens = {};\n/**\n* Used for testing.\n*/\nfunction clearAllCachedTokens() {\n\tfor (const key in cachedTokens) delete cachedTokens[key];\n}\nexposeInternalApiOnWindow(\"clearAllAccessTokens\", () => {\n\tconsole.log(\"Clearing tokens\", cachedTokens);\n\tObject.keys(cachedTokens).forEach((key) => {\n\t\tconsole.log(\"Clearing access tokens for\", key);\n\t\tdeleteFromLocalStorage(key, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(key, [\"access-token\", \"refresh-token\"]);\n\t});\n\tclearAllCachedTokens();\n});\nfunction saveInLocalStorage(topic, name, value) {\n\tlocalStorage.setItem(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction saveInSessionStorage(topic, name, value) {\n\tsessionStorage.setItem(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction saveInCustomSecretStorage(storage, topic, name, value) {\n\treturn storage.store(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction loadFromLocalStorage(topic, name) {\n\treturn localStorage.getItem(`${\"qlik-qmfe-api\"}-${topic}-${name}`) || void 0;\n}\nfunction loadFromSessionStorage(topic, name) {\n\treturn sessionStorage.getItem(`${\"qlik-qmfe-api\"}-${topic}-${name}`) || void 0;\n}\nfunction loadFromCustomSecretStorage(storage, topic, name) {\n\treturn storage.get(`${storagePrefix}-${topic}-${name}`);\n}\nfunction deleteFromLocalStorage(topic, names) {\n\tnames.forEach((name) => localStorage.removeItem(`${storagePrefix}-${topic}-${name}`));\n}\nfunction deleteFromSessionStorage(topic, names) {\n\tnames.forEach((name) => sessionStorage.removeItem(`${storagePrefix}-${topic}-${name}`));\n}\nfunction deleteFromCustomSecretStorage(storage, topic, names) {\n\treturn Promise.all(names.map((name) => storage.delete(`${storagePrefix}-${topic}-${name}`)));\n}\nfunction loadAndDeleteFromSessionStorage(topic, name) {\n\tconst id = `${storagePrefix}-${topic}-${name}`;\n\tconst result = sessionStorage.getItem(id) || void 0;\n\tsessionStorage.removeItem(id);\n\treturn result;\n}\n/**\n* Returns true if the provided storage object implements the SecretStorage interface, false otherwise.\n*/\nfunction isCustomSecretStorage(storage) {\n\treturn typeof storage === \"object\" && storage !== null && typeof storage.store === \"function\" && typeof storage.get === \"function\" && typeof storage.delete === \"function\";\n}\nasync function loadOauthTokensFromStorage(topic, accessTokenStorage) {\n\tlet accessToken;\n\tlet refreshToken;\n\tif (accessTokenStorage === \"local\") {\n\t\taccessToken = loadFromLocalStorage(topic, \"access-token\");\n\t\trefreshToken = loadFromLocalStorage(topic, \"refresh-token\");\n\t} else if (accessTokenStorage === \"session\") {\n\t\taccessToken = loadFromSessionStorage(topic, \"access-token\");\n\t\trefreshToken = loadFromSessionStorage(topic, \"refresh-token\");\n\t} else if (isCustomSecretStorage(accessTokenStorage)) {\n\t\taccessToken = await loadFromCustomSecretStorage(accessTokenStorage, topic, \"access-token\");\n\t\trefreshToken = await loadFromCustomSecretStorage(accessTokenStorage, topic, \"refresh-token\");\n\t}\n\tif (accessToken) return {\n\t\taccessToken,\n\t\trefreshToken\n\t};\n}\nasync function loadCachedOauthTokens(hostConfig) {\n\treturn cachedTokens[getTopicFromOauthHostConfig(hostConfig)];\n}\nasync function loadOrAcquireAccessTokenOauth(hostConfig, acquireTokens) {\n\tif (!hostConfig.clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to also provide a clientId\");\n\treturn loadOrAcquireAccessToken(getTopicFromOauthHostConfig(hostConfig), acquireTokens, hostConfig.noCache, hostConfig.accessTokenStorage);\n}\nasync function loadOrAcquireAccessTokenAnon(hostConfig, acquireTokens) {\n\tif (!hostConfig.accessCode) throw new InvalidHostConfigError(\"A host config with authType set to \\\"anonymous\\\" has to also provide an accessCode\");\n\treturn loadOrAcquireAccessToken(getTopicFromAnonHostConfig(hostConfig), acquireTokens, false, void 0);\n}\nasync function loadOrAcquireAccessToken(topic, acquireTokens, noCache, accessTokenStorage) {\n\tif (noCache) return acquireTokens();\n\tcachedTokens[topic] = cachedTokens[topic] || (async () => {\n\t\tlet tokens = await loadOauthTokensFromStorage(topic, accessTokenStorage);\n\t\tif (tokens) return tokens;\n\t\ttokens = await acquireTokens();\n\t\tif (accessTokenStorage === \"local\" && tokens) {\n\t\t\tif (tokens.accessToken) saveInLocalStorage(topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) saveInLocalStorage(topic, \"refresh-token\", tokens.refreshToken);\n\t\t} else if (accessTokenStorage === \"session\" && tokens) {\n\t\t\tif (tokens.accessToken) saveInSessionStorage(topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) saveInSessionStorage(topic, \"refresh-token\", tokens.refreshToken);\n\t\t} else if (isCustomSecretStorage(accessTokenStorage) && tokens) {\n\t\t\tif (tokens.accessToken) await saveInCustomSecretStorage(accessTokenStorage, topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) await saveInCustomSecretStorage(accessTokenStorage, topic, \"refresh-token\", tokens.refreshToken);\n\t\t}\n\t\treturn tokens;\n\t})();\n\treturn cachedTokens[topic];\n}\nfunction clearStoredOauthTokens(hostConfig) {\n\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\tdelete cachedTokens[topic];\n\tif (isBrowser()) {\n\t\tdeleteFromLocalStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t}\n\tif (isCustomSecretStorage(hostConfig.accessTokenStorage)) deleteFromCustomSecretStorage(hostConfig.accessTokenStorage, topic, [\"access-token\", \"refresh-token\"]);\n}\nfunction clearStoredAnonymousTokens(hostConfig) {\n\tconst topic = getTopicFromAnonHostConfig(hostConfig);\n\tdelete cachedTokens[topic];\n\tif (isBrowser()) {\n\t\tdeleteFromLocalStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/oauth-utils.ts\nfunction toPerformInteractiveLoginFunction(performInteractiveLogin) {\n\tif (typeof performInteractiveLogin === \"string\") {\n\t\tconst fn = lookupInteractiveLoginFn(performInteractiveLogin);\n\t\tif (!fn) throw new Error(`No such function: ${performInteractiveLogin}`);\n\t\treturn fn;\n\t}\n\treturn performInteractiveLogin;\n}\nfunction lookupGetAccessFn(getAccessToken) {\n\treturn globalThis[getAccessToken];\n}\nfunction lookupInteractiveLoginFn(name) {\n\treturn globalThis[name];\n}\nfunction handlePossibleErrors(data) {\n\tif (data.errors) throw new AuthorizationError(data.errors);\n}\nfunction toQueryString(queryParams) {\n\tconst queryParamsKeys = Object.keys(queryParams);\n\tqueryParamsKeys.sort();\n\treturn queryParamsKeys.map((k) => `${k}=${queryParams[k]}`).join(\"&\");\n}\nfunction byteArrayToBase64(hashArray) {\n\tlet result;\n\tif (isBrowser()) {\n\t\tconst byteArrayToString = String.fromCharCode.apply(null, hashArray);\n\t\tresult = btoa(byteArrayToString);\n\t} else if (isNode()) result = Buffer.from(hashArray).toString(\"base64\");\n\telse throw new Error(\"Environment not supported for oauth2 authentication\");\n\treturn result;\n}\n/**\n* @param message string to hash\n* @returns sha-256 hashed string\n*/\nasync function sha256(message) {\n\tconst msgBuffer = new TextEncoder().encode(message);\n\tconst hashBuffer = await globalThis.crypto.subtle.digest(\"SHA-256\", msgBuffer);\n\treturn byteArrayToBase64(Array.from(new Uint8Array(hashBuffer))).replaceAll(/\\+/g, \"-\").replaceAll(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nasync function createInteractiveLoginUrl(hostConfig, redirectUri, state, verifier) {\n\tconst clientId = hostConfig.clientId || \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tconst codeChallenge = await sha256(verifier);\n\treturn `${locationUrl}/oauth/authorize?${toQueryString({\n\t\tresponse_type: \"code\",\n\t\tclient_id: clientId,\n\t\tredirect_uri: redirectUri,\n\t\tscope: hostConfig.scope || \"user_default\",\n\t\tstate,\n\t\tcode_challenge: codeChallenge,\n\t\tcode_challenge_method: \"S256\"\n\t})}`;\n}\nasync function startFullPageLoginFlow(hostConfig) {\n\tconst clientId = hostConfig.clientId || \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tconst verifier = generateRandomString(128);\n\tconst state = generateRandomString(43);\n\tconst codeChallenge = await sha256(verifier);\n\tconst redirectUri = hostConfig.redirectUri || globalThis.location.href;\n\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\tclearStoredOauthTokens(hostConfig);\n\tsaveInSessionStorage(topic, \"state\", state);\n\tsaveInSessionStorage(topic, \"verifier\", verifier);\n\tsaveInSessionStorage(topic, \"href\", globalThis.location.href);\n\tsaveInSessionStorage(\"\", \"client-in-progress\", topic);\n\tconst url = `${locationUrl}/oauth/authorize?${toQueryString({\n\t\tresponse_type: \"code\",\n\t\tclient_id: clientId,\n\t\tredirect_uri: redirectUri,\n\t\tscope: hostConfig.scope || \"user_default\",\n\t\tstate,\n\t\tcode_challenge: codeChallenge,\n\t\tcode_challenge_method: \"S256\"\n\t})}`;\n\tglobalThis.location.replace(url);\n}\nasync function exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, redirectUri) {\n\ttry {\n\t\tconst data = await (await fetch(`${toValidLocationUrl(hostConfig)}/oauth/token`, {\n\t\t\tmethod: \"POST\",\n\t\t\tcredentials: \"include\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\tredirect: \"follow\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tgrant_type: \"authorization_code\",\n\t\t\t\tscope: hostConfig.scope || \"user_default\",\n\t\t\t\t...code ? { code } : {},\n\t\t\t\tredirect_uri: redirectUri || globalThis.location.href,\n\t\t\t\t...verifier ? { code_verifier: verifier } : {},\n\t\t\t\tclient_id: hostConfig.clientId\n\t\t\t})\n\t\t})).json();\n\t\thandlePossibleErrors(data);\n\t\treturn {\n\t\t\taccessToken: data.access_token,\n\t\t\trefreshToken: data.refresh_token,\n\t\t\terrors: data.errors\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\treturn new Promise(() => {});\n\t}\n}\nfunction createBodyWithCredentialsEtc(clientId, clientSecret, scope, subject, userId) {\n\tconst commonProps = {\n\t\tclient_id: clientId,\n\t\tclient_secret: clientSecret,\n\t\tscope\n\t};\n\tif (subject) return {\n\t\t...commonProps,\n\t\tgrant_type: \"urn:qlik:oauth:user-impersonation\",\n\t\tuser_lookup: {\n\t\t\tfield: \"subject\",\n\t\t\tvalue: subject\n\t\t}\n\t};\n\tif (userId) return {\n\t\t...commonProps,\n\t\tgrant_type: \"urn:qlik:oauth:user-impersonation\",\n\t\tuser_lookup: {\n\t\t\tfield: \"userId\",\n\t\t\tvalue: userId\n\t\t}\n\t};\n\treturn {\n\t\t...commonProps,\n\t\tgrant_type: \"client_credentials\"\n\t};\n}\nasync function getOauthTokensWithCredentials(baseUrl, clientId, clientSecret, scope = \"user_default\", subject, userId) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify(createBodyWithCredentialsEtc(clientId, clientSecret, scope, subject, userId))\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\nasync function getOauthTokensWithRefreshToken(baseUrl, refreshToken, clientSecret) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\tgrant_type: \"refresh_token\",\n\t\t\trefresh_token: refreshToken,\n\t\t\tclient_secret: clientSecret\n\t\t})\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\nasync function getAnonymousOauthAccessToken(baseUrl, accessCode, clientId, trackingCode) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token/anonymous-embed`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\teac: accessCode,\n\t\t\tclient_id: clientId,\n\t\t\tgrant_type: \"urn:qlik:oauth:anonymous-embed\",\n\t\t\ttracking_code: trackingCode\n\t\t})\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\n/**\n* Fetches the access token from storage or memory.\n* This code is intended to run in a node environment\n*/\nasync function getOAuthTokensForNode(hostConfig) {\n\tconst { clientId, clientSecret, performInteractiveLogin } = hostConfig;\n\tif (!clientId || !clientSecret && !performInteractiveLogin) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to provide a clientId and a clientSecret or a performInteractiveLogin function\");\n\treturn await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\tif (hostConfig.performInteractiveLogin) return getOauthTokensWithInteractiveLogin(hostConfig);\n\t\tif (!hostConfig.clientId || !hostConfig.clientSecret) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to provide a clientId and a clientSecret\");\n\t\treturn getOauthTokensWithCredentials(toValidLocationUrl(hostConfig), hostConfig.clientId, hostConfig.clientSecret, hostConfig.scope, hostConfig.subject, hostConfig.userId);\n\t});\n}\n/**\n* Fetches the access token from storage or memory. If no one is found a code and verifier is expected to be found in the sesion storage\n* This code is intended to run in a browser\n*/\nasync function getOAuthTokensForBrowser(hostConfig) {\n\tconst { clientId } = hostConfig;\n\tif (!clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to also provide a clientId\");\n\tconst oauthTokens = await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\tif (hostConfig.getAccessToken) try {\n\t\t\treturn {\n\t\t\t\taccessToken: typeof hostConfig.getAccessToken === \"string\" ? await lookupGetAccessFn(hostConfig.getAccessToken)() : await hostConfig.getAccessToken(),\n\t\t\t\trefreshToken: void 0,\n\t\t\t\terrors: void 0\n\t\t\t};\n\t\t} catch {\n\t\t\treturn errorMessageToAuthData(\"Could not fetch access token using custom function\");\n\t\t}\n\t\tif (hostConfig.performInteractiveLogin) return getOauthTokensWithInteractiveLogin(hostConfig);\n\t\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\t\tconst code = loadAndDeleteFromSessionStorage(topic, \"code\");\n\t\tconst verifier = loadAndDeleteFromSessionStorage(topic, \"verifier\");\n\t\tif (code && verifier) {\n\t\t\tconst tokenResponse = await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, hostConfig.redirectUri);\n\t\t\tif (tokenResponse) return tokenResponse;\n\t\t}\n\t});\n\tif (oauthTokens) return oauthTokens;\n\tif (hostConfig.performInteractiveLogin) return new Promise(() => {});\n\tawait requestRedirect(hostConfig);\n\tstartFullPageLoginFlow(hostConfig);\n\treturn new Promise(() => {});\n}\nasync function getOauthTokensWithInteractiveLogin(hostConfig) {\n\tif (!hostConfig.performInteractiveLogin) return errorMessageToAuthData(\"No performInteractiveLogin function in hostConfig\");\n\tlet usedRedirectUri;\n\ttry {\n\t\tconst verifier = generateRandomString(128);\n\t\tconst originalState = generateRandomString(43);\n\t\tconst { code, state } = extractCodeAndState(await toPerformInteractiveLoginFunction(hostConfig.performInteractiveLogin)({ getLoginUrl: async ({ redirectUri }) => {\n\t\t\tusedRedirectUri = redirectUri;\n\t\t\treturn createInteractiveLoginUrl(hostConfig, redirectUri, originalState, verifier);\n\t\t} }));\n\t\tif (!usedRedirectUri) return errorMessageToAuthData(\"No redirect uri provided\");\n\t\tif (originalState !== state) return errorMessageToAuthData(\"State returned by custom interactive login function does not match original\");\n\t\tif (!code) return errorMessageToAuthData(\"No code found in response from custom interactive login function\");\n\t\treturn await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, usedRedirectUri);\n\t} catch (error) {\n\t\treturn {\n\t\t\taccessToken: void 0,\n\t\t\trefreshToken: void 0,\n\t\t\terrors: [{\n\t\t\t\tcode: \"\",\n\t\t\t\tstatus: 401,\n\t\t\t\ttitle: \"Could not perform custom interactive login\",\n\t\t\t\tdetail: String(error)\n\t\t\t}]\n\t\t};\n\t}\n}\nlet lastOauthTokensCall = Promise.resolve(\"\");\nasync function getOAuthAccessToken(hostConfig) {\n\tif (isNode()) {\n\t\tconst tokens = await getOAuthTokensForNode(hostConfig);\n\t\tif (tokens) {\n\t\t\thandlePossibleErrors(tokens);\n\t\t\treturn tokens.accessToken || \"\";\n\t\t}\n\t\treturn \"\";\n\t}\n\tif (isBrowser()) lastOauthTokensCall = lastOauthTokensCall.then(async () => {\n\t\tconst tokens = await getOAuthTokensForBrowser(hostConfig);\n\t\tif (tokens) {\n\t\t\thandlePossibleErrors(tokens);\n\t\t\treturn tokens.accessToken || \"\";\n\t\t}\n\t\treturn \"\";\n\t});\n\treturn lastOauthTokensCall;\n}\nasync function refreshAccessToken(hostConfig) {\n\tconst tokens = await loadCachedOauthTokens(hostConfig);\n\tclearStoredOauthTokens(hostConfig);\n\tif (tokens && tokens.refreshToken && hostConfig.clientSecret) {\n\t\tconst refreshedTokens = await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\t\tif (!tokens || !tokens.refreshToken || !hostConfig.clientSecret) throw new Error(\"Trying to refresh tokens without refreshToken or clientSecret\");\n\t\t\treturn getOauthTokensWithRefreshToken(toValidLocationUrl(hostConfig), tokens.refreshToken, hostConfig.clientSecret);\n\t\t});\n\t\tif (refreshedTokens) handlePossibleErrors(refreshedTokens);\n\t}\n}\nfunction extractCodeAndState(input) {\n\tif (typeof input === \"string\") {\n\t\tlet parsedUrl;\n\t\ttry {\n\t\t\tparsedUrl = new URL(input);\n\t\t} catch {\n\t\t\tparsedUrl = new URL(input, \"http://localhost\");\n\t\t}\n\t\tconst queryParams = new URLSearchParams(parsedUrl.search);\n\t\treturn {\n\t\t\tcode: queryParams.get(\"code\") || \"\",\n\t\t\tstate: queryParams.get(\"state\") || \"\"\n\t\t};\n\t}\n\treturn input;\n}\nfunction errorMessageToAuthData(message) {\n\treturn {\n\t\taccessToken: void 0,\n\t\trefreshToken: void 0,\n\t\terrors: [{\n\t\t\tcode: \"\",\n\t\t\tstatus: 401,\n\t\t\ttitle: message,\n\t\t\tdetail: \"\"\n\t\t}]\n\t};\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/temporary-token.ts\nasync function exchangeAccessTokenForTemporaryToken(hostConfig, accessToken, purpose) {\n\tconst response = await fetch(`${toValidLocationUrl(hostConfig)}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tcredentials: \"include\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tredirect: \"follow\",\n\t\tbody: JSON.stringify({\n\t\t\tsubject_token: accessToken,\n\t\t\tsubject_token_type: \"urn:ietf:params:oauth:token-type:access_token\",\n\t\t\tgrant_type: \"urn:ietf:params:oauth:grant-type:token-exchange\",\n\t\t\tpurpose,\n\t\t\tredirect_uri: globalThis.location?.href,\n\t\t\tclient_id: hostConfig.clientId\n\t\t})\n\t});\n\tif (response.status !== 200) throw await toError(response);\n\treturn (await response.json()).access_token;\n}\nasync function toError(response) {\n\tconst body = await response.text();\n\ttry {\n\t\treturn new AuthorizationError(JSON.parse(body).errors);\n\t} catch {\n\t\treturn new AuthorizationError([{\n\t\t\tcode: \"unknown\",\n\t\t\tstatus: response.status,\n\t\t\tdetail: body,\n\t\t\ttitle: \"Unknown authentication error\"\n\t\t}]);\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/anonymous.ts\n/**\n* Retries the passed in function after calling handleAuthenticationError\n*/\nasync function handlePotentialAuthenticationErrorAndRetry$1(hostConfig, fn) {\n\ttry {\n\t\treturn await fn();\n\t} catch (err) {\n\t\tconst { retry } = await handleAuthenticationError$10({\n\t\t\thostConfig,\n\t\t\tcanRetry: true\n\t\t});\n\t\tif (retry) return fn();\n\t\tthrow err;\n\t}\n}\nasync function getOrCreateTrackingCode(hostConfig) {\n\tlet trackingCode;\n\tif (isBrowser()) {\n\t\tconst topic = getTopicFromAnonHostConfig(hostConfig);\n\t\ttrackingCode = loadFromLocalStorage(topic, \"tracking-code\");\n\t\tif (!trackingCode) trackingCode = createTrackingCode();\n\t\tsaveInLocalStorage(topic, \"tracking-code\", trackingCode);\n\t} else trackingCode = createTrackingCode();\n\treturn trackingCode;\n}\nfunction createTrackingCode() {\n\tconst timeStamp = Math.floor(Date.now() / 1e3).toString(16);\n\treturn `${timeStamp}${generateRandomHexString(40 - timeStamp.length)}`;\n}\nasync function getAnonymousAccessToken(hostConfig) {\n\tconst { accessCode, clientId } = hostConfig;\n\tif (!accessCode || !clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"anonymous\\\" has to provide both an accessCode and clientId\");\n\tconst tokens = await loadOrAcquireAccessTokenAnon(hostConfig, async () => {\n\t\tconst baseUrl = toValidLocationUrl(hostConfig);\n\t\tconst trackingCode = await getOrCreateTrackingCode(hostConfig);\n\t\treturn getAnonymousOauthAccessToken(baseUrl, accessCode, clientId, trackingCode);\n\t});\n\tif (!tokens) return \"\";\n\tif (tokens.errors) throw new AuthorizationError(tokens.errors);\n\tif (tokens.accessToken) return tokens.accessToken;\n\treturn \"\";\n}\nasync function getRestCallAuthParams$10({ hostConfig }) {\n\treturn {\n\t\theaders: { Authorization: `Bearer ${await getAnonymousAccessToken(hostConfig)}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t};\n}\nasync function getWebSocketAuthParams$10({ hostConfig }) {\n\tif (isNode()) return { headers: { Authorization: `Bearer ${await getAnonymousAccessToken(hostConfig)}` } };\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry$1(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getAnonymousAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function getWebResourceAuthParams$2({ hostConfig }) {\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry$1(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getAnonymousAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function handleAuthenticationError$10({ hostConfig }) {\n\tclearStoredAnonymousTokens(hostConfig);\n\treturn {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n}\nvar anonymous_default = {\n\trequiredProps: [\"clientId\", \"accessCode\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$10,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$10,\n\tgetWebResourceAuthParams: getWebResourceAuthParams$2,\n\thandleAuthenticationError: handleAuthenticationError$10\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/apikey.ts\nfunction getRestCallAuthParams$9({ hostConfig }) {\n\treturn Promise.resolve({\n\t\theaders: { Authorization: `Bearer ${hostConfig?.apiKey}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t});\n}\nasync function getWebSocketAuthParams$9({ hostConfig }) {\n\tif (isBrowser()) throw new Error(\"Not supported in browser environment\");\n\treturn Promise.resolve({ headers: { Authorization: `Bearer ${hostConfig?.apiKey}` } });\n}\nfunction handleAuthenticationError$9() {\n\treturn Promise.resolve({});\n}\nvar apikey_default = {\n\trequiredProps: [\"apiKey\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$9,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$9,\n\thandleAuthenticationError: handleAuthenticationError$9\n};\n\n//#endregion\n//#region src/invoke-fetch/invoke-fetch-errors.ts\n/**\n* Error thrown by the invokeFetch function\n*/\nvar InvokeFetchError = class extends Error {\n\tstatus;\n\theaders;\n\tdata;\n\tconstructor(errorMessage, status, headers, data) {\n\t\tsuper(errorMessage);\n\t\tthis.status = status;\n\t\tthis.headers = headers;\n\t\tthis.data = data;\n\t\tthis.stack = cleanStack(this.stack);\n\t}\n};\n/**\n* Error thrown if a request-body cannot be encoded.\n*/\nvar EncodingError = class extends Error {\n\tcontentType;\n\tdata;\n\tconstructor(errorMessage, contentType, data) {\n\t\tsuper(errorMessage);\n\t\tthis.contentType = contentType;\n\t\tthis.data = data;\n\t\tthis.stack = cleanStack(this.stack);\n\t}\n};\nconst regex = /^.+\\/qmfe-api(?:\\.js)?:(\\d+)(?::\\d+)?$/gim;\nconst isFromQmfeApi = (line) => {\n\tconst matches = line.match(regex);\n\treturn Boolean(matches && matches.length > 0);\n};\n/**\n* Function that removes stack entries that are from the qmfe-api module\n*/\nfunction cleanStack(stack) {\n\tif (!stack) return stack;\n\tconst newStack = [];\n\tconst lines = stack.split(\"\\n\");\n\tlines.reverse();\n\tfor (const line of lines) {\n\t\tif (isFromQmfeApi(line)) break;\n\t\tnewStack.unshift(line);\n\t}\n\treturn newStack.join(\"\\n\");\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-fetch-helpers.ts\n/**\n* Appends the specified query parameters (encoded) to the provided url.\n* @private\n*/\nfunction appendQueryToUrl(url, queryParams) {\n\tconst queryString = encodeQueryParams(queryParams);\n\tlet firstQueryDelim;\n\tif (url.indexOf(\"?\") === -1) firstQueryDelim = \"?\";\n\telse firstQueryDelim = \"&\";\n\treturn `${url}${firstQueryDelim}${queryString}`;\n}\n/**\n* Encode the query map into a query string\n* @private\n*/\nfunction encodeQueryParams(query) {\n\tif (!query) return \"\";\n\treturn Object.entries(query).map((kv) => {\n\t\tconst [, value] = kv;\n\t\tif (value === void 0) return;\n\t\treturn kv.map((val) => encodeURIComponent(decodeURIComponent(val))).join(\"=\");\n\t}).filter(Boolean).join(\"&\");\n}\n/**\n* Replaces the variable placeholders in the path template with the variable values\n* @param pathTemplate\n* @param pathVariables\n* @private\n*/\nfunction applyPathVariables(pathTemplate, pathVariables) {\n\tlet result = pathTemplate;\n\tif (pathVariables) Object.keys(pathVariables).forEach((key) => {\n\t\tresult = result.replace(`{${key}}`, pathVariables[key]);\n\t});\n\treturn result;\n}\n/**\n* Join url and query to a complete url\n* @private\n*/\nfunction toCompleteUrl(url, query) {\n\tif (query !== \"\") return `${url}?${query}`;\n\treturn url;\n}\n/**\n* Returns true if the status code is 301 or 302 or for ..../qps/csrftoken with 403 which really should be 401 on windows but isn't for historical reasons\n*/\nfunction means401OnWindows(completeUrl, statusCode) {\n\tconst url = new URL(completeUrl, \"http://dummy\");\n\tconst isQpsCsrfTokenUrl = url.pathname.endsWith(\"/qps/csrftoken\") && url.searchParams.has(\"xrfkey\");\n\treturn statusCode === 301 || statusCode === 302 || isQpsCsrfTokenUrl && statusCode === 403;\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-xhr.ts\nasync function invokeXHR(completeUrl, { method, headers, credentials, keepalive, body, signal, progress }) {\n\tconst xhr = new XMLHttpRequest();\n\tlet resolve;\n\tlet reject;\n\tconst promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\txhr.open(method || \"GET\", completeUrl);\n\tif (typeof headers === \"object\") for (const [key, value] of Object.entries(headers)) xhr.setRequestHeader(key, value);\n\telse throw Error(\"malformed headers\", headers);\n\tif (keepalive) xhr.setRequestHeader(\"Connection\", \"keep-alive\");\n\tif (signal) signal.addEventListener(\"abort\", () => {\n\t\txhr.abort();\n\t\treject();\n\t});\n\tif (credentials === \"include\") xhr.withCredentials = true;\n\telse xhr.withCredentials = false;\n\tif (progress?.onUpload) xhr.upload.onprogress = (event) => {\n\t\tconst { loaded, total, lengthComputable } = event;\n\t\tprogress.onUpload?.({\n\t\t\tloaded,\n\t\t\ttotal: lengthComputable ? total : void 0\n\t\t});\n\t};\n\tif (progress?.onDownload) xhr.onprogress = (event) => {\n\t\tconst { loaded, total, lengthComputable } = event;\n\t\tprogress.onDownload?.({\n\t\t\tloaded,\n\t\t\ttotal: lengthComputable ? total : void 0\n\t\t});\n\t};\n\txhr.onloadend = () => {\n\t\tconst { status } = xhr;\n\t\tconst responseHeaders = {};\n\t\tfor (const line of xhr.getAllResponseHeaders().split(\"\\r\\n\")) {\n\t\t\tconst [key, value] = line.split(\":\", 2);\n\t\t\tif (key && value) responseHeaders[key] = value;\n\t\t}\n\t\tif (xhr.response) resolve(new Response(xhr.response, {\n\t\t\tstatus,\n\t\t\theaders: responseHeaders\n\t\t}));\n\t\telse resolve(new Response(void 0, {\n\t\t\tstatus,\n\t\t\theaders: responseHeaders\n\t\t}));\n\t};\n\ttry {\n\t\tconst bod = body;\n\t\txhr.send(bod);\n\t} catch (e) {\n\t\treturn Promise.reject(new InvokeFetchError(getErrorMessage(e), 0, new Headers(), {}));\n\t}\n\treturn promise;\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/response-cache.ts\nconst responseCaches = {};\nglobalThis.__API_CACHE__DO_NOT_USE_OR_YOU_WILL_BE_FIRED = responseCaches;\nif (globalThis.QlikMain?.INTERNAL__DO_NOT_USE) globalThis.QlikMain.INTERNAL__DO_NOT_USE.apiCache = responseCaches;\nlet defaultCacheTime = 1e3 * 60 * 10;\n/**\n* The global namespace is used as a fallback if an entry is not found in a specific cache.\n* This cache can be used internally, specifically by BFF interceptors,\n* where we cannot reliably map a response to an API-module.\n*/\nconst globalCacheNamespace = \".global\";\n/**\n* Gets a cached response-promise from the specified API-namespace (or global cache).\n* A promise is returned if options.noCache is not true, the promise exists and is not too\n* old (based on defaults and cache-options).\n*\n* @param api The cache-namespace of the API.\n* @param props CachingContext\n* @returns The cached response (cloned and ready to use) or undefined.\n*/\nfunction getFromCache(api, props) {\n\tif (isForbiddenApiName(api)) throw new Error(`Forbidden api name: ${api}`);\n\tif (props?.options?.noCache) return;\n\tconst { method, completeUrl, cacheKey } = props;\n\tconst caches = getPossibleCaches(api);\n\tif (isModifyingOperation(method, completeUrl)) return;\n\tlet entry;\n\tfor (const cache of caches) if (cacheKey in cache) {\n\t\tentry = cache[cacheKey];\n\t\tif (entry && typeof entry.value !== \"undefined\" && shouldUseCachedResult(props?.options, entry, defaultCacheTime)) break;\n\t\tentry = void 0;\n\t}\n\tif (!entry) return;\n\tentry.lastHit = /* @__PURE__ */ new Date();\n\tentry.hitCount += 1;\n\tentry.accessedPaths.add(globalThis.location ? globalThis.location.pathname : \"node\");\n\tconst value = entry.value;\n\treturn cloneResultPromise(value);\n}\n/**\n* Updates the cache of 'api' with the response-promise based on the caching-context.\n* If the promise comes from a modifying operation, related cache entries will be removed.\n* The returned promise is either the original promise (if it isn't cached) or a\n* cloned promise that is safe to use.\n*\n* Note: The original response-promise should not be reused directly, use the returned\n* equivalent instead.\n*\n* @private\n* @param api The cache-namespace of the API.\n* @param props CachingContext\n* @param responsePromise Promise<InvokeFetchResponse>, the thing to cache\n* @returns\n*/\nfunction updateCache(api, props, responsePromise) {\n\tif (isForbiddenApiName(api)) throw new Error(`Forbidden api name: ${api}`);\n\tif (!responseCaches[api]) responseCaches[api] = {};\n\tconst { cacheKey } = props;\n\tif (isModifyingOperation(props.method, props.completeUrl)) return responsePromise.then((res) => {\n\t\tconst caches = getPossibleCaches(api);\n\t\tfor (const cache of caches) clearRelatedCacheEntries(cache, cacheKey);\n\t\treturn res;\n\t});\n\tconst cacheNamespace = responseCaches[api];\n\tconst responsePromiseWithCacheClearing = responsePromise.catch((error) => {\n\t\tdelete cacheNamespace[cacheKey];\n\t\treturn Promise.reject(error);\n\t});\n\tcacheNamespace[cacheKey] = {\n\t\tlastPulled: Date.now(),\n\t\tvalue: responsePromiseWithCacheClearing,\n\t\tlastHit: null,\n\t\thitCount: 0,\n\t\taccessedPaths: /* @__PURE__ */ new Set()\n\t};\n\treturn cloneResultPromise(responsePromiseWithCacheClearing);\n}\n/**\n* Returns true if it is ok the to use the cached promise from a previous invocation\n* @private\n*/\nfunction shouldUseCachedResult(options, cacheEntry, defaultMaxCacheTime) {\n\tif (options?.noCache) return false;\n\tif (!cacheEntry || typeof cacheEntry.value === \"undefined\") return false;\n\tif (options?.useCacheIfAfter) return options.useCacheIfAfter.getTime() <= cacheEntry.lastPulled;\n\tconst age = Date.now() - cacheEntry.lastPulled;\n\tif (typeof options?.maxCacheAge === \"number\") return age <= options?.maxCacheAge;\n\treturn age < defaultMaxCacheTime;\n}\n/**\n* Builds a key used for caching based on a CachingContext\n* @private\n* @param cachingContext\n* @returns a key used for caching\n*/\nfunction toCacheKey({ url, query, headers, serializedHostConfig }) {\n\tlet cacheKey = url;\n\tif (query && Object.keys(query).length > 0) {\n\t\tconst queryString = encodeQueryParams(query);\n\t\tif (url.includes(\"?\")) cacheKey = cacheKey.concat(`&${queryString}`);\n\t\telse cacheKey = cacheKey.concat(`?${queryString}`);\n\t}\n\tif (headers && Object.keys(headers).length > 0) cacheKey = cacheKey.concat(`+headers=${JSON.stringify(headers)}`);\n\tif (serializedHostConfig && serializedHostConfig !== \"{}\") cacheKey = cacheKey.concat(`+host-config=${serializedHostConfig}`);\n\treturn cacheKey;\n}\n/**\n* Convenience function for getting a list of caches that are OK to use\n* in the context of an API-namespace.\n* @param api\n* @returns\n*/\nfunction getPossibleCaches(api) {\n\tconst caches = [];\n\tif (responseCaches[api]) caches.push(responseCaches[api]);\n\tif (responseCaches[\".global\"]) caches.push(responseCaches[globalCacheNamespace]);\n\treturn caches;\n}\n/**\n* @private\n* Clears all cache entries where the modifying URL starts with the cached URL\n* @param cache\n* @param cacheKey\n*/\nfunction clearRelatedCacheEntries(cache, cacheKey) {\n\tconst modifyingUrl = cacheKeyToUrl(cacheKey);\n\tfor (const existingCacheKey in cache) {\n\t\tconst cleanUrl = cacheKeyToUrl(existingCacheKey);\n\t\tif (modifyingUrl.startsWith(cleanUrl) || cleanUrl.startsWith(modifyingUrl)) delete cache[existingCacheKey];\n\t}\n}\n/**\n* Removes query, headers and host-config from the cache key to get a clean URL.\n*/\nfunction cacheKeyToUrl(cachedUrl) {\n\tconst queryIdx = cachedUrl.indexOf(\"?\");\n\tif (queryIdx >= 0) return cachedUrl.substring(0, queryIdx);\n\tconst headersIdx = cachedUrl.indexOf(\"+headers=\");\n\tif (headersIdx >= 0) return cachedUrl.substring(0, headersIdx);\n\tconst hostConfigIdx = cachedUrl.indexOf(\"+host-config=\");\n\tif (hostConfigIdx >= 0) return cachedUrl.substring(0, hostConfigIdx);\n\treturn cachedUrl;\n}\n/**\n* Clone mutable-objects using JSON.stringify.\n* Strings, Blobs and ReadableStreams are not cloned.\n* @private\n*/\nfunction clone(value) {\n\tif (typeof value === \"undefined\" || value === null) return value;\n\tif (value && (value instanceof Blob || value instanceof Object && value.toString() === \"[object Blob]\")) return value;\n\tif (value && value instanceof ReadableStream) return value;\n\tif (typeof value === \"string\") return value;\n\treturn JSON.parse(JSON.stringify(value));\n}\n/**\n* Clones the result so that no one can tamper with the cache. Note that the headers object is NOT cloned\n* @private\n*/\nfunction cloneResultPromise(value) {\n\treturn value.then((resp) => {\n\t\tconst result = {\n\t\t\tdata: clone(resp.data),\n\t\t\theaders: resp.headers,\n\t\t\tstatus: resp.status\n\t\t};\n\t\tif (resp.next) result.next = resp.next;\n\t\tif (resp.prev) result.prev = resp.prev;\n\t\treturn result;\n\t});\n}\n/**\n* Clears cached responses\n* @param api the api to clear cache in\n*/\nfunction clearApiCacheInternal(api) {\n\tresponseCaches[api] = {};\n}\n/**\n* Returns true if the method might modify things requiring caches to be cleared\n*/\nfunction isModifyingOperation(method, url) {\n\tif (method === \"get\" || method === \"GET\") return false;\n\tif (url.endsWith(\"/api/v1/licenses/allotments\") && (method === \"post\" || method === \"POST\")) return false;\n\treturn true;\n}\nfunction isForbiddenApiName(api) {\n\treturn api === \"__proto__\";\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-fetch-methods.ts\nfunction getErrorMessage(error) {\n\tif (error instanceof Error) {\n\t\tif (error.cause) {\n\t\t\tif (error.message) return `${error.message} - ${getErrorMessage(error.cause)}`;\n\t\t\treturn getErrorMessage(error.cause);\n\t\t}\n\t\treturn error.message;\n\t}\n\treturn String(error);\n}\nasync function fetchAndTransformExceptions(input, init) {\n\ttry {\n\t\treturn await fetch(input, init);\n\t} catch (e) {\n\t\treturn Promise.reject(new InvokeFetchError(getErrorMessage(e), 0, new Headers(), {}));\n\t}\n}\nasync function performActualHttpFetch(method, completeUrl, unencodedBody, contentType, options, authHeaders, credentials, userAgent) {\n\tconst { body, contentTypeHeader, requestOptions } = encodeBody(unencodedBody, contentType ?? \"\");\n\tconst headers = {\n\t\t...contentTypeHeader,\n\t\t...authHeaders,\n\t\t...options?.headers,\n\t\t...getServiceOverrideHeaderFromLocalStorage()\n\t};\n\tif (!headers[\"User-Agent\"] && userAgent) headers[\"User-Agent\"] = userAgent;\n\tconst request = {\n\t\tmethod,\n\t\tcredentials,\n\t\tmode: \"cors\",\n\t\theaders,\n\t\tredirect: await isWindows(options?.hostConfig) ? \"manual\" : \"follow\",\n\t\tkeepalive: options?.keepalive,\n\t\tprogress: options?.progress,\n\t\tbody,\n\t\t...requestOptions\n\t};\n\tlet fetchTimeoutId;\n\tif (options?.signal) request.signal = options.signal;\n\telse if (options?.timeoutMs && options.timeoutMs > 0) {\n\t\tconst controller = new AbortController();\n\t\tfetchTimeoutId = setTimeout(() => {\n\t\t\tcontroller.abort();\n\t\t}, options.timeoutMs);\n\t\trequest.signal = controller.signal;\n\t}\n\tlet response;\n\tif (options?.progress) response = await invokeXHR(completeUrl, request);\n\telse response = await fetchAndTransformExceptions(completeUrl, request);\n\tif (fetchTimeoutId) clearTimeout(fetchTimeoutId);\n\treturn await parseFetchResponse(response, completeUrl);\n}\nfunction encodeBody(unencodedBody, contentType) {\n\tif (!unencodedBody) return {\n\t\tbody: null,\n\t\tcontentTypeHeader: {},\n\t\trequestOptions: {}\n\t};\n\tconst contentTypeHeader = {};\n\tconst requestOptions = {};\n\tlet body;\n\tswitch (contentType) {\n\t\tcase \"\":\n\t\tcase \"application/json\":\n\t\t\tcontentTypeHeader[\"Content-Type\"] = \"application/json\";\n\t\t\tbody = JSON.stringify(unencodedBody);\n\t\t\tbreak;\n\t\tcase \"multipart/form-data\":\n\t\t\tbody = encodeMultipartBody(unencodedBody);\n\t\t\tbreak;\n\t\tcase \"application/octet-stream\":\n\t\t\tcontentTypeHeader[\"Content-Type\"] = contentType;\n\t\t\trequestOptions[\"duplex\"] = \"half\";\n\t\t\tbody = unencodedBody;\n\t\t\tbreak;\n\t\tcase \"text/plain\":\n\t\t\tif (typeof unencodedBody === \"string\") {\n\t\t\t\tcontentTypeHeader[\"Content-Type\"] = contentType;\n\t\t\t\tbody = unencodedBody;\n\t\t\t} else throw new EncodingError(`Cannot send ${typeof unencodedBody} as ${contentType}, body should be a string.`, contentType, unencodedBody);\n\t\t\tbreak;\n\t\tdefault: throw new EncodingError(`Unsupported content-type \"${contentType}\", supported are: application/json, multipart/form-data, application/octet-stream and text/plain`, contentType, unencodedBody);\n\t}\n\treturn {\n\t\tbody,\n\t\tcontentTypeHeader,\n\t\trequestOptions\n\t};\n}\nfunction encodeMultipartBody(unencodedBody) {\n\tconst contentType = \"multipart/form-data\";\n\tif (typeof unencodedBody !== \"object\") throw new EncodingError(`Cannot encode ${typeof unencodedBody} as ${contentType}, body should be an object.`, contentType, unencodedBody);\n\tif (Array.isArray(unencodedBody)) throw new EncodingError(`Cannot encode ${typeof unencodedBody} as ${contentType}, body should be an object.`, contentType, unencodedBody);\n\tif (unencodedBody instanceof FormData) return unencodedBody;\n\tconst form = new FormData();\n\tObject.entries(unencodedBody).forEach((entry) => {\n\t\tconst [key, value] = entry;\n\t\tswitch (typeof value) {\n\t\t\tcase \"boolean\":\n\t\t\tcase \"number\":\n\t\t\tcase \"string\":\n\t\t\t\tform.set(key, `${value}`);\n\t\t\t\tbreak;\n\t\t\tcase \"object\":\n\t\t\t\tif (value instanceof Blob) form.set(key, value);\n\t\t\t\telse if (value instanceof Uint8Array) {\n\t\t\t\t\tconst data = new Blob([value], { type: \"application/octet-stream\" });\n\t\t\t\t\tform.set(key, data);\n\t\t\t\t} else {\n\t\t\t\t\tconst json = JSON.stringify(value);\n\t\t\t\t\tconst data = new Blob([json], { type: \"application/json\" });\n\t\t\t\t\tform.set(key, data, \"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault: throw new EncodingError(`Cannot encode multipart-field \"${key}\" with value of type ${typeof value}, values must be objects, strings, numbers or boolean.`, contentType, unencodedBody);\n\t\t}\n\t});\n\treturn form;\n}\nasync function getInvokeFetchUrlParams({ method, pathTemplate, pathVariables, query, options }) {\n\tconst locationUrl = toValidLocationUrl(options?.hostConfig);\n\tconst { headers: authHeaders, queryParams: authQueryParams, credentials } = await getRestCallAuthParams({\n\t\thostConfig: options?.hostConfig,\n\t\tmethod\n\t});\n\tconst url = locationUrl + applyPathVariables(pathTemplate, pathVariables);\n\tconst completeUrl = toCompleteUrl(url, encodeQueryParams({\n\t\t...query,\n\t\t...authQueryParams\n\t}));\n\tconst serializedHostConfig = serializeHostConfig(options?.hostConfig);\n\treturn {\n\t\tcompleteUrl,\n\t\tauthHeaders,\n\t\tcredentials,\n\t\tcacheKey: toCacheKey({\n\t\t\turl,\n\t\t\tquery,\n\t\t\theaders: options?.headers,\n\t\t\tserializedHostConfig\n\t\t})\n\t};\n}\nfunction invokeFetchWithUrl(api, props) {\n\treturn invokeFetchWithUrlAndRetry(api, props, async () => {\n\t\tconst { authHeaders, credentials } = await getInvokeFetchUrlParams(props);\n\t\treturn invokeFetchWithUrlAndRetry(api, {\n\t\t\t...props,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\toptions: {\n\t\t\t\t...props.options,\n\t\t\t\tnoCache: true\n\t\t\t}\n\t\t}, void 0);\n\t});\n}\nfunction invokeFetchWithUrlAndRetry(api, props, performRetry) {\n\tconst { method, completeUrl, body, options, authHeaders, credentials, cacheKey, contentType, userAgent } = props;\n\tconst cachingContext = {\n\t\tmethod,\n\t\tcompleteUrl,\n\t\tcacheKey,\n\t\toptions\n\t};\n\tconst cachedResponse = getFromCache(api, cachingContext);\n\tif (cachedResponse) return cachedResponse;\n\tconst resultPromiseFromBackend = performActualHttpFetch(method, completeUrl, body, contentType, options, authHeaders, credentials, userAgent);\n\tconst resultAfterAuthenticationCheck = interceptAuthenticationErrors(options?.hostConfig, completeUrl, resultPromiseFromBackend, performRetry);\n\treturn updateCache(api, cachingContext, addPagingFunctions(api, {\n\t\t...props,\n\t\tvalue: resultAfterAuthenticationCheck\n\t}));\n}\n/**\n* Adds paging functions to the response object if there are paging links present in the response body\n*/\nfunction addPagingFunctions(api, { method, body, options, authHeaders, credentials, value }) {\n\treturn value.then((resp) => {\n\t\tconst dataWithPotentialLinks = resp.data;\n\t\tif (!dataWithPotentialLinks) return resp;\n\t\tconst serializedHostConfig = serializeHostConfig(options?.hostConfig);\n\t\tconst prevUrl = dataWithPotentialLinks.links?.prev?.href;\n\t\tconst nextUrl = dataWithPotentialLinks.links?.next?.href;\n\t\tif (prevUrl) resp.prev = (prevOptions) => invokeFetchWithUrl(api, {\n\t\t\tmethod,\n\t\t\tcompleteUrl: prevUrl,\n\t\t\tbody,\n\t\t\toptions: prevOptions || options,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\tcacheKey: toCacheKey({\n\t\t\t\turl: prevUrl,\n\t\t\t\theaders: options?.headers,\n\t\t\t\tserializedHostConfig\n\t\t\t})\n\t\t});\n\t\tif (nextUrl) resp.next = (nextOptions) => invokeFetchWithUrl(api, {\n\t\t\tmethod,\n\t\t\tcompleteUrl: nextUrl,\n\t\t\tbody,\n\t\t\toptions: nextOptions || options,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\tcacheKey: toCacheKey({\n\t\t\t\turl: nextUrl,\n\t\t\t\theaders: options?.headers,\n\t\t\t\tserializedHostConfig\n\t\t\t})\n\t\t});\n\t\treturn resp;\n\t});\n}\nfunction neverResolvingPromise() {\n\treturn new Promise(() => {});\n}\nasync function interceptAuthenticationErrors(hostConfig, completeUrl, resultPromise, performRetry) {\n\ttry {\n\t\treturn await resultPromise;\n\t} catch (error) {\n\t\tconst err = error;\n\t\tconst errorBody = err.data;\n\t\tif (err.status === 401 || err.status === 403 && errorBody?.code === \"CSRF-TOKEN-2\" || means401OnWindows(completeUrl, err.status) && await isWindows(hostConfig)) {\n\t\t\tif (globalThis.loggingOut) return neverResolvingPromise();\n\t\t\tconst { retry, preventDefault } = await handleAuthenticationError({\n\t\t\t\thostConfig,\n\t\t\t\tstatus: err.status,\n\t\t\t\theaders: err.headers,\n\t\t\t\terrorBody,\n\t\t\t\tcanRetry: !!performRetry\n\t\t\t});\n\t\t\tif (retry && performRetry) return performRetry();\n\t\t\tif (preventDefault) return neverResolvingPromise();\n\t\t}\n\t\tthrow error;\n\t}\n}\n/** Set the X-Qlik-Overrides header according to what's written to localStorage\n* by qmfe-devtool */\nfunction getServiceOverrideHeaderFromLocalStorage() {\n\tif (!isBrowser()) return {};\n\tconst header = localStorage.getItem(\"qmfe-api-service-overrides-header\");\n\tif (!header) return {};\n\treturn { \"X-Qlik-Overrides\": header };\n}\n/** Convert a Blob to a DownloadableBlob */\nfunction toDownloadableBlob(blob, name) {\n\tconst result = blob;\n\tif (name) result.download = (filename) => download(blob, filename ?? name);\n\telse result.download = (filename) => download(blob, filename);\n\treturn result;\n}\n/** Convenience-function for downloading a blob. */\nasync function download(blob, filename) {\n\tif (isBrowser()) {\n\t\tconst a = document.createElement(\"a\");\n\t\tconst blobUrl = window.URL.createObjectURL(blob);\n\t\ta.href = blobUrl;\n\t\ta.download = filename;\n\t\ta.click();\n\t\twindow.URL.revokeObjectURL(blobUrl);\n\t} else {\n\t\tconst { writeFileSync } = await import(\"fs\");\n\t\tconst arrayBuffer = await blob.arrayBuffer();\n\t\twriteFileSync(filename, new Uint8Array(arrayBuffer));\n\t}\n}\n\n//#endregion\n//#region src/invoke-fetch/invoke-fetch-functions.ts\nconst defaultUserAgent = \"qmfe-api/latest\";\n/**\n* Makes an HTTP call with the browser's fetch API to the endpoint configured in the call's arguments\n* @param api Name of api to call. Will be used for caching responses.\n* @param invokeFetchProps InvokeFetchProperties\n*/\nasync function invokeFetch(api, props, interceptors) {\n\tconst effectiveInterceptors = interceptors || getInterceptors();\n\tconst invokeFetchFinal = (reqeust) => invokeFetchIntercepted(api, reqeust);\n\treturn (effectiveInterceptors || []).reduce((proceed, interceptor) => (request) => interceptor(request, proceed), invokeFetchFinal)(props);\n}\n/** @private Runs the intercepted version of invoke fetch */\nasync function invokeFetchIntercepted(api, props) {\n\tif (props.options?.hostConfig?.authType === \"mock-backend-rest-recorder\") return Promise.resolve(props.options?.hostConfig.recordInvokeFetch(props));\n\tif (props.options?.hostConfig?.authType === \"mock-backend\") return Promise.resolve(props.options?.hostConfig.mockInvokeFetch(props));\n\tcheckForCrossDomainRequest(props.options?.hostConfig);\n\tif (props.options?.hostConfig?.authType === \"noauth\") {\n\t\tconsole.info(\"API call blocked: noauth auth module is configured, no API calls should be made\");\n\t\treturn {\n\t\t\tstatus: 204,\n\t\t\theaders: new Headers(),\n\t\t\tdata: null\n\t\t};\n\t}\n\tlet userAgent;\n\tif (props?.userAgent) userAgent = props.userAgent;\n\telse if (isBrowser()) userAgent = `${window.navigator.userAgent} ${defaultUserAgent}`;\n\telse userAgent = defaultUserAgent;\n\tconst { completeUrl, authHeaders, credentials, cacheKey } = await getInvokeFetchUrlParams(props);\n\treturn invokeFetchWithUrl(api, {\n\t\t...props,\n\t\tmethod: props.method.toUpperCase(),\n\t\tcompleteUrl,\n\t\tauthHeaders,\n\t\tcredentials,\n\t\tcacheKey,\n\t\tuserAgent\n\t});\n}\n/**\n* Clears cached responses for a certain api\n* @example\n* clearNameSpaceCache(\"spaces\"); // clears the cache for the \"spaces\" api\n* @param api the api namespace to clear cache in\n*/\nfunction clearApiCache(api) {\n\tclearApiCacheInternal(api);\n}\n/**\n* Function that extracts the payload from the fetch response.\n* @param fetchResponse fetch response\n* @param url to where the request as made\n* @returns parsed fetch response\n*/\nasync function parseFetchResponse(fetchResponse, url) {\n\tlet resultData;\n\tconst contentType = fetchResponse.headers.get(\"content-type\")?.split(\";\")[0];\n\tconst contentDisposition = fetchResponse.headers.get(\"content-disposition\")?.split(\";\");\n\tif (contentDisposition && contentDisposition[0] === \"attachment\") {\n\t\tlet filename = \"\";\n\t\tfor (let i = 1; i < contentDisposition.length; i++) {\n\t\t\tconst attr = contentDisposition[i].trim();\n\t\t\tif (attr.indexOf(\"filename\") === 0) {\n\t\t\t\tconst start = attr.indexOf(\"\\\"\");\n\t\t\t\tconst end = attr.lastIndexOf(\"\\\"\");\n\t\t\t\tfilename = attr.slice(start + 1, end);\n\t\t\t}\n\t\t}\n\t\tresultData = toDownloadableBlob(await fetchResponse.blob(), filename);\n\t} else switch (contentType) {\n\t\tcase \"image/png\":\n\t\tcase \"image/jpeg\":\n\t\tcase \"image/x-icon\":\n\t\tcase \"application/offset+octet-stream\":\n\t\tcase \"application/octet-stream\":\n\t\tcase \"application/zip\":\n\t\tcase \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n\t\tcase \"application/pdf\":\n\t\t\tresultData = toDownloadableBlob(await fetchResponse.blob());\n\t\t\tbreak;\n\t\tcase \"text/event-stream\":\n\t\t\tresultData = fetchResponse.body;\n\t\t\tbreak;\n\t\tcase void 0:\n\t\tdefault: {\n\t\t\tlet bodyText;\n\t\t\ttry {\n\t\t\t\tbodyText = await fetchResponse.text();\n\t\t\t} catch (error) {\n\t\t\t\tthrow new InvokeFetchError(`request to '${url}' failed while reading response body: ${error instanceof Error ? error.message : String(error)}`, fetchResponse.status, fetchResponse.headers, void 0);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tresultData = JSON.parse(bodyText);\n\t\t\t} catch {\n\t\t\t\tresultData = bodyText;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst { status, statusText, headers } = fetchResponse;\n\tconst errorMsg = `request to '${url}' failed with status ${status} ${statusText}.`;\n\tif (status >= 300) throw new InvokeFetchError(errorMsg, status, headers, resultData);\n\tif (status === 0) throw new InvokeFetchError(errorMsg, 302, headers, resultData);\n\treturn {\n\t\tstatus,\n\t\theaders,\n\t\tdata: resultData\n\t};\n}\n\n//#endregion\n//#region src/http/http-constants.ts\n/**\n* Name of the CSRF Token header.\n*/\nconst QLIK_CSRF_TOKEN = \"qlik-csrf-token\";\n\n//#endregion\n//#region src/http/http-functions.ts\n/**\n* Clears the CSRF token\n* @param location an optional location that is used to clear the csrf tokens when embedded\n*/\nfunction clearCsrfToken(hostConfig) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tdelete csrfTokens[locationUrl];\n\tclearApiCache(\"csrf-token\");\n}\n/**\n* Fetches the CSRF token from the server. The token is cached and will be reused for subsequent calls.\n* @param hostConfig HostConfig object containing the location url and authentication options\n* @param noCache Set to true to force a new token to be fetched\n* @returns csrf token\n*/\nasync function getCsrfToken(hostConfig, noCache) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tlet pathTemplate;\n\tif (await isWindows(hostConfig)) pathTemplate = \"/qps/csrftoken\";\n\telse pathTemplate = \"/api/v1/csrf-token\";\n\tconst fetchCsrfToken = async () => {\n\t\ttry {\n\t\t\tconst csrfToken = (await invokeFetch(\"csrf-token\", {\n\t\t\t\tmethod: \"get\",\n\t\t\t\tpathTemplate,\n\t\t\t\toptions: {\n\t\t\t\t\thostConfig,\n\t\t\t\t\tmaxCacheAge: 5e3,\n\t\t\t\t\tnoCache\n\t\t\t\t}\n\t\t\t})).headers.get(QLIK_CSRF_TOKEN);\n\t\t\tif (!csrfToken) return \"\";\n\t\t\treturn csrfToken;\n\t\t} catch (e) {\n\t\t\tif (e.status === 404) return \"\";\n\t\t\tthrow e;\n\t\t}\n\t};\n\tif (noCache) {\n\t\tcsrfTokens[locationUrl] = fetchCsrfToken();\n\t\treturn csrfTokens[locationUrl];\n\t}\n\tcsrfTokens[locationUrl] = csrfTokens[locationUrl] || fetchCsrfToken();\n\treturn csrfTokens[locationUrl];\n}\nconst csrfTokens = {};\n\n//#endregion\n//#region src/auth/internal/internal-auth-functions.ts\n/**\n* Returns the fetch credentials string based on the host config. Note that this\n* assumes cookies are used so it should only be used by the cookie auth modes\n* @param hostConfig the HostConfig containing authentication details\n* @private\n*/\nfunction internalGetCredentialsForCookieAuth(hostConfig) {\n\tif (hostConfig.crossSiteCookies === false) return \"same-origin\";\n\tif (isHostCrossOrigin(hostConfig)) return \"include\";\n\treturn \"same-origin\";\n}\nasync function resolveTokenIfPresent(getAccessToken) {\n\tif (typeof getAccessToken === \"function\") return getAccessToken();\n\tif (typeof getAccessToken === \"string\") {\n\t\tconst accessTokenFn = lookupGlobalGetAccessTokenFn(getAccessToken);\n\t\tif (typeof accessTokenFn !== \"function\") throw new Error(`getAccessToken function \"${getAccessToken}\" not found on globalThis. Please make sure it is defined.`);\n\t\treturn accessTokenFn();\n\t}\n}\nfunction lookupGlobalGetAccessTokenFn(getAccessToken) {\n\treturn globalThis[getAccessToken];\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/cookie.ts\n/**\n* Returns true if the verb might modify things requiring caches to be cleared\n*/\nfunction isModifyingVerb(verb) {\n\treturn !(verb === \"get\" || verb === \"GET\");\n}\nasync function getRestCallAuthParams$8({ hostConfig, method }) {\n\tconst headers = {};\n\tif (isModifyingVerb(method)) headers[\"qlik-csrf-token\"] = await getCsrfToken(hostConfig);\n\tif (hostConfig.webIntegrationId) headers[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\treturn {\n\t\theaders,\n\t\tqueryParams: {},\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$8({ hostConfig }) {\n\tif (isNode()) {\n\t\tconst headers = {};\n\t\theaders[\"qlik-csrf-token\"] = await getCsrfToken(hostConfig);\n\t\tif (hostConfig.webIntegrationId) headers[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\t\treturn { headers };\n\t}\n\tconst params = { \"qlik-csrf-token\": await getCsrfToken(hostConfig, true) };\n\tif (hostConfig.webIntegrationId) params[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\treturn { queryParams: params };\n}\nasync function handleAuthenticationError$8({ hostConfig, status }) {\n\tclearCsrfToken(hostConfig);\n\tif (status === 403) return {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n\tconst webIntegrationParam = hostConfig.webIntegrationId ? `qlik-web-integration-id=${hostConfig?.webIntegrationId}&` : \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tawait requestRedirect(hostConfig);\n\tglobalThis.location.replace(`${locationUrl}/login?${webIntegrationParam}returnto=${encodeURIComponent(globalThis.location.href)}`);\n\treturn { preventDefault: true };\n}\n/** @private */\nvar cookie_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"webIntegrationId\",\n\t\t\"crossSiteCookies\",\n\t\t\"anonymousMode\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$8,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$8,\n\thandleAuthenticationError: handleAuthenticationError$8\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/noauth.ts\nfunction getRestCallAuthParams$7(_props) {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"same-origin\"\n\t});\n}\nfunction getWebSocketAuthParams$7(_props) {\n\treturn Promise.resolve({ queryParams: {} });\n}\nfunction handleAuthenticationError$7(_props) {\n\treturn Promise.resolve({});\n}\n/** @private */\nvar noauth_default = {\n\trequiredProps: [],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$7,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$7,\n\thandleAuthenticationError: handleAuthenticationError$7\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/none.ts\nfunction getRestCallAuthParams$6() {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"same-origin\"\n\t});\n}\nfunction getWebSocketAuthParams$6() {\n\treturn Promise.resolve({ queryParams: {} });\n}\nfunction handleAuthenticationError$6() {\n\treturn Promise.resolve({});\n}\n/** @private */\nvar none_default = {\n\trequiredProps: [],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$6,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$6,\n\thandleAuthenticationError: handleAuthenticationError$6\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/callback.ts\n/**\n* Receives the oauth code and state callback query parameters,\n* verifies the state, saves the code in session storage, and then\n* redirects the page to the final href if it is set and differes from current uri\n*/\nfunction handleOAuthCallback() {\n\tconst urlParams = new URLSearchParams(globalThis.location.search);\n\tconst callbackCode = urlParams.get(\"code\") || void 0;\n\tconst callbackState = urlParams.get(\"state\") || void 0;\n\tif (urlParams.get(\"error\")) {\n\t\tconst element = document.createElement(\"pre\");\n\t\telement.innerText = `<code>${JSON.stringify({\n\t\t\terror: urlParams.get(\"error\"),\n\t\t\terror_code: urlParams.get(\"error_code\"),\n\t\t\terror_description: urlParams.get(\"error_description\"),\n\t\t\terror_detail: urlParams.get(\"error_detail\"),\n\t\t\terror_uri: urlParams.get(\"error_uri\")\n\t\t})}</code>`;\n\t\tdocument.body.prepend(element);\n\t}\n\tconst topic = loadAndDeleteFromSessionStorage(\"\", \"client-in-progress\");\n\tif (topic && callbackCode && callbackState) {\n\t\tconst stateFromLocalStorage = loadAndDeleteFromSessionStorage(topic, \"state\");\n\t\tconst finalRedirectUri = loadAndDeleteFromSessionStorage(topic, \"href\");\n\t\tif (stateFromLocalStorage && stateFromLocalStorage === callbackState && finalRedirectUri) {\n\t\t\tsaveInSessionStorage(topic, \"code\", callbackCode);\n\t\t\tif (finalRedirectUri !== globalThis.location.href) globalThis.location.replace(finalRedirectUri);\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth.ts\nif (isBrowser()) handleOAuthCallback();\n/**\n* Retries the passed in function after calling handleAuthenticationError\n*/\nasync function handlePotentialAuthenticationErrorAndRetry(hostConfig, fn) {\n\ttry {\n\t\treturn await fn();\n\t} catch (err) {\n\t\tconst { retry } = await handleAuthenticationError$5({\n\t\t\thostConfig,\n\t\t\tcanRetry: true\n\t\t});\n\t\tif (retry) return fn();\n\t\tthrow err;\n\t}\n}\nasync function getRestCallAuthParams$5({ hostConfig }) {\n\treturn {\n\t\theaders: { Authorization: `Bearer ${await getOAuthAccessToken(hostConfig)}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t};\n}\nasync function getWebSocketAuthParams$5({ hostConfig }) {\n\tif (isNode()) return { headers: { Authorization: `Bearer ${await getOAuthAccessToken(hostConfig)}` } };\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getOAuthAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function getWebResourceAuthParams$1({ hostConfig }) {\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getOAuthAccessToken(hostConfig), \"webresource\");\n\t}) } };\n}\nasync function handleAuthenticationError$5({ hostConfig }) {\n\tif (hostConfig.getAccessToken) {\n\t\tclearStoredOauthTokens(hostConfig);\n\t\treturn {\n\t\t\tpreventDefault: false,\n\t\t\tretry: true\n\t\t};\n\t}\n\tif (hostConfig.performInteractiveLogin) {\n\t\tclearStoredOauthTokens(hostConfig);\n\t\treturn { retry: true };\n\t}\n\tif (isBrowser()) {\n\t\tawait requestRedirect(hostConfig);\n\t\tstartFullPageLoginFlow(hostConfig);\n\t\treturn { preventDefault: true };\n\t}\n\tawait refreshAccessToken(hostConfig);\n\treturn {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n}\nvar oauth_default = {\n\trequiredProps: [\"clientId\"],\n\toptionalProps: [\n\t\t\"clientSecret\",\n\t\t\"redirectUri\",\n\t\t\"accessTokenStorage\",\n\t\t\"scope\",\n\t\t\"subject\",\n\t\t\"userId\",\n\t\t\"noCache\",\n\t\t\"getAccessToken\",\n\t\t\"performInteractiveLogin\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$5,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$5,\n\tgetWebResourceAuthParams: getWebResourceAuthParams$1,\n\thandleAuthenticationError: handleAuthenticationError$5\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/reference.ts\nfunction getRestCallAuthParams$4() {\n\tthrow new Error(\"getRestCallAuthParams should never be called for reference auth module\");\n}\nfunction getWebSocketAuthParams$4() {\n\tthrow new Error(\"getWebSocketAuthParams should never be called for reference auth module\");\n}\nfunction handleAuthenticationError$4() {\n\tthrow new Error(\"handleAuthenticationError should never be called for reference auth module\");\n}\n/**\n* This auth module is only here to provide a reference for the auth type \"reference\". It should never be used in practice.\n* @private */\nvar reference_default = {\n\trequiredProps: [\"reference\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$4,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$4,\n\thandleAuthenticationError: handleAuthenticationError$4\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie/xrf-keys.ts\nconst xrfKeys = {};\n/**\n* @returns {string} 16 character long xrf-key\n*/\nfunction createXrfKey() {\n\tlet result = \"\";\n\tfor (let i = 0; i < 16; i += 1) {\n\t\tconst j = Math.floor(Math.random() * 62);\n\t\tif (j < 10) result += j;\n\t\telse if (j > 9 && j < 36) result += String.fromCharCode(j + 55);\n\t\telse result += String.fromCharCode(j + 61);\n\t}\n\treturn result;\n}\nfunction getXrfKey(hostConfig) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\txrfKeys[locationUrl] = xrfKeys[locationUrl] || createXrfKey();\n\treturn xrfKeys[locationUrl];\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie.ts\nasync function getRestCallAuthParams$3({ hostConfig }) {\n\treturn {\n\t\theaders: { \"X-Qlik-XrfKey\": getXrfKey(hostConfig) },\n\t\tqueryParams: { xrfkey: getXrfKey(hostConfig) },\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$3({ hostConfig }) {\n\treturn { queryParams: {\n\t\txrfkey: getXrfKey(hostConfig),\n\t\t\"qlik-csrf-token\": await getCsrfToken(hostConfig, true)\n\t} };\n}\nasync function handleAuthenticationError$3({ hostConfig }) {\n\tif (hostConfig.loginUri) {\n\t\tawait requestRedirect(hostConfig);\n\t\tglobalThis.location.replace(hostConfig.loginUri.replace(\"{location}\", encodeURIComponent(globalThis.location.href)));\n\t\treturn { preventDefault: true };\n\t}\n\tif (hostConfig.getAccessToken) {\n\t\tconst token = await resolveTokenIfPresent(hostConfig.getAccessToken);\n\t\tif (token) {\n\t\t\tawait fetch(`${toValidLocationUrl(hostConfig)}/qlik-embed/main.js`, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tmode: \"cors\",\n\t\t\t\tcredentials: \"include\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\tAuthorization: `Bearer ${token}`\n\t\t\t\t},\n\t\t\t\tcache: \"no-cache\"\n\t\t\t});\n\t\t\treturn { retry: true };\n\t\t}\n\t}\n\treturn {};\n}\n/** @private */\nvar windows_cookie_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"loginUri\",\n\t\t\"crossSiteCookies\",\n\t\t\"getAccessToken\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$3,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$3,\n\thandleAuthenticationError: handleAuthenticationError$3\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie-node.ts\nconst nodeCookieStore = /* @__PURE__ */ new Map();\nfunction clearCookieInStore(hostConfig) {\n\tconst key = serializeHostConfig(hostConfig);\n\tnodeCookieStore.delete(key);\n}\nfunction setCookieInStore(hostConfig, cookie) {\n\tconst key = serializeHostConfig(hostConfig);\n\tnodeCookieStore.set(key, cookie);\n}\nfunction getCookieInStore(hostConfig) {\n\tconst key = serializeHostConfig(hostConfig);\n\treturn nodeCookieStore.get(key);\n}\nasync function getCookie(hostConfig) {\n\tlet cookie = getCookieInStore(hostConfig);\n\tif (!cookie) {\n\t\tconst token = await resolveTokenIfPresent(hostConfig.getAccessToken);\n\t\tif (!token) throw new Error(\"Failed to acquire access token\");\n\t\tcookie = (await fetch(`${toValidLocationUrl(hostConfig)}/qlik-embed/main.js`, {\n\t\t\tmethod: \"GET\",\n\t\t\tmode: \"cors\",\n\t\t\tcredentials: \"include\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: `Bearer ${token}`\n\t\t\t}\n\t\t})).headers.get(\"Set-Cookie\") || void 0;\n\t\tif (cookie) setCookieInStore(hostConfig, cookie);\n\t}\n\tif (!cookie) throw new Error(\"Failed to exchange access token for cookie\");\n\treturn cookie;\n}\nasync function getRestCallAuthParams$2({ hostConfig }) {\n\treturn {\n\t\tqueryParams: { xrfkey: getXrfKey(hostConfig) },\n\t\theaders: {\n\t\t\tCookie: await getCookie(hostConfig),\n\t\t\t\"X-Qlik-XrfKey\": getXrfKey(hostConfig)\n\t\t},\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$2({ hostConfig }) {\n\treturn {\n\t\tqueryParams: { \"qlik-csrf-token\": await getCsrfToken(hostConfig, true) },\n\t\theaders: { Cookie: await getCookie(hostConfig) }\n\t};\n}\nasync function handleAuthenticationError$2({ hostConfig }) {\n\tclearCookieInStore(hostConfig);\n\treturn { retry: true };\n}\n/** @private */\nvar windows_cookie_node_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"loginUri\",\n\t\t\"crossSiteCookies\",\n\t\t\"getAccessToken\"\n\t],\n\tvalidateHostConfig: (hostConfig) => {\n\t\tif (typeof hostConfig.getAccessToken === \"function\") return true;\n\t\tif (typeof hostConfig.getAccessToken === \"string\") {\n\t\t\tif (!!!globalThis[hostConfig.getAccessToken]) throw new InvalidHostConfigError(\"The \\\"getAccessToken\\\" function name provided does not exist on globalThis.\");\n\t\t\treturn true;\n\t\t}\n\t\tthrow new InvalidHostConfigError(\"The \\\"getAccessToken\\\" property must be a function or the name of a globally defined function.\");\n\t},\n\tgetRestCallAuthParams: getRestCallAuthParams$2,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$2,\n\thandleAuthenticationError: handleAuthenticationError$2\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/pfx.ts\nfunction getRestCallAuthParams$1({ hostConfig }) {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\",\n\t\tpfxOptions: {\n\t\t\tpfx: hostConfig?.pfx,\n\t\t\tpassphrase: hostConfig?.passphrase\n\t\t}\n\t});\n}\nasync function getWebSocketAuthParams$1({ hostConfig }) {\n\tif (isBrowser()) throw new Error(\"Not supported in browser environment\");\n\tconst xQlikUserHeader = hostConfig?.userHeader || \"UserDirectory=INTERNAL; UserId=sa_engine\";\n\treturn Promise.resolve({\n\t\theaders: { \"X-Qlik-User\": xQlikUserHeader },\n\t\tpfxOptions: {\n\t\t\tpfx: hostConfig?.pfx,\n\t\t\tpassphrase: hostConfig?.passphrase || \"\"\n\t\t}\n\t});\n}\nfunction handleAuthenticationError$1() {\n\treturn Promise.resolve({});\n}\nvar pfx_default = {\n\trequiredProps: [\"pfx\"],\n\toptionalProps: [\"passphrase\", \"userHeader\"],\n\tgetRestCallAuthParams: getRestCallAuthParams$1,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$1,\n\thandleAuthenticationError: handleAuthenticationError$1\n};\n\n//#endregion\n//#region src/auth/internal/auth-module-registry.ts\n/**\n* Auth module registry\n*/\nconst authModules = {};\n/**\n* A promise that gets recreated when an auth module is currently being loaded\n*/\nlet ongoingAuthModuleLoading = Promise.resolve();\nlet authModulesRegistered = false;\n(function registerDefaultAuthModules() {\n\tif (!authModulesRegistered) {\n\t\tregisterAuthModule$1(\"apikey\", apikey_default);\n\t\tregisterAuthModule$1(\"cookie\", cookie_default);\n\t\tregisterAuthModule$1(\"none\", none_default);\n\t\tregisterAuthModule$1(\"noauth\", noauth_default);\n\t\tregisterAuthModule$1(\"oauth2\", oauth_default);\n\t\tregisterAuthModule$1(\"anonymous\", anonymous_default);\n\t\tregisterAuthModule$1(\"pfx\", pfx_default);\n\t\tif (isBrowser()) registerAuthModule$1(\"windowscookie\", windows_cookie_default);\n\t\telse registerAuthModule$1(\"windowscookie\", windows_cookie_node_default);\n\t\tregisterAuthModule$1(\"reference\", reference_default);\n\t\tauthModulesRegistered = true;\n\t}\n})();\n/**\n* Registers an auth module that can handle authentication. An auth module is used by specifying its name as authType in the HostConfig passed in to api calls.\n* @param name the name of the module\n* @param authModule the implementation of the AuthModule interface\n*/\nfunction registerAuthModule$1(name, authModule) {\n\tauthModules[name.toLowerCase()] = authModule;\n}\n/**\n* Get the names of all registered AuthModules.\n* @returns Array of all registered AuthModules\n*/\nfunction getRegisteredAuthModules() {\n\treturn Object.keys(authModules);\n}\n/**\n* Gets the auth module with the given name. The name is case insensitive.\n* @param authType The name of the auth module to get. The name is case insensitive.\n* @returns\n*/\nfunction getRegisteredAuthModule(authType) {\n\treturn authModules[authType.toLowerCase()];\n}\n/**\n* Gets the auth module for a host config. If only clientId is set, then authType is assumed and set to \"oauth2\".\n* If host config is undefined or empty, then authType is assumed and set to \"cookie\" or \"windowscookie\" depending\n* on which platform the host is running on.\n*\n* @private\n* @param hostConfig\n*/\nasync function getAuthModule(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tconst authType = await determineAuthType$1(hostConfigToUse);\n\tif (ongoingAuthModuleLoading) await ongoingAuthModuleLoading;\n\tlet authModule = getRegisteredAuthModule(authType);\n\tif (!authModule) {\n\t\t/**\n\t\t* This is basically poor mans synchronous block so that one globally defined asynchronous auth module factory function\n\t\t* is not called more than once if several calls to getAuthModule come in in sequence.\n\t\t*/\n\t\tongoingAuthModuleLoading = (async () => {\n\t\t\tauthModule = await resolveGloballyDefinedAuthModule(authType);\n\t\t\tif (authModule) registerAuthModule$1(authType, authModule);\n\t\t})();\n\t\tawait ongoingAuthModuleLoading;\n\t}\n\tif (!authModule) throw new InvalidAuthTypeError(authType);\n\tif (authModule.validateHostConfig) authModule.validateHostConfig({\n\t\tauthType,\n\t\t...hostConfigToUse\n\t});\n\telse internalValidateHostConfig({\n\t\tauthType,\n\t\t...hostConfigToUse\n\t}, {\n\t\trequiredProps: authModule.requiredProps || [],\n\t\toptionalProps: authModule.optionalProps || []\n\t});\n\treturn authModule;\n}\nasync function resolveGloballyDefinedAuthModule(authType) {\n\tconst globalVariable = globalThis[authType];\n\tif (globalVariable) {\n\t\tlet potentialAuthModule;\n\t\tif (typeof globalVariable === \"function\") potentialAuthModule = await globalVariable();\n\t\telse potentialAuthModule = globalVariable;\n\t\tif (potentialAuthModule && potentialAuthModule.getRestCallAuthParams && potentialAuthModule.getWebSocketAuthParams && potentialAuthModule.handleAuthenticationError) return potentialAuthModule;\n\t\tconsole.error(\"Not a valid auth module\", potentialAuthModule);\n\t\tthrow new InvalidAuthTypeError(authType);\n\t}\n\treturn Promise.resolve(void 0);\n}\n/**\n* @private\n* Helper function for validating a host config in runtime\n* @param hostConfig - The host config to validate\n* @param options - Options for validation\n* @param options.requiredProps - The required properties in the host config\n* @param options.optionalProps - The optional properties in the host config\n* @throws {InvalidHostConfigError} If the host config is invalid\n* @returns {boolean} Returns true if the host config is valid\n* */\nfunction internalValidateHostConfig(hostConfig, { requiredProps, optionalProps }) {\n\tconst missingRequiredProps = [];\n\tfor (const requiredProp of requiredProps) if (!hostConfig[requiredProp]) missingRequiredProps.push(requiredProp);\n\tif (missingRequiredProps.length > 0) throw new InvalidHostConfigError(`missing required properties in host config; '${missingRequiredProps.join(\"', '\")}'`);\n\tconst validProps = [\n\t\t...hostConfigCommonProperties,\n\t\t...requiredProps,\n\t\t...optionalProps\n\t];\n\tconst invalidKeys = [];\n\tObject.keys(hostConfig).forEach((key) => {\n\t\tif (!validProps.includes(key)) invalidKeys.push(key);\n\t});\n\tif (invalidKeys.length > 0) console.warn(`WARNING: unknown properties in host config; '${invalidKeys.join(\"', '\")}'`);\n\treturn true;\n}\n/**\n* Determines the authType associated with a HostConfig even if it's\n* not explicitly set.\n*/\nasync function determineAuthType$1(hostConfig) {\n\tif (hostConfig.authType) return hostConfig.authType;\n\tif (hostConfig.apiKey) return \"apikey\";\n\tif (hostConfig.accessCode) return \"anonymous\";\n\tif (hostConfig.clientId) return \"oauth2\";\n\tif (hostConfig.webIntegrationId) return \"cookie\";\n\tif (hostConfig.reference) return \"reference\";\n\tif (hostConfig.pfx) return \"pfx\";\n\tif (await isWindows(hostConfig)) return \"windowscookie\";\n\treturn \"cookie\";\n}\n\n//#endregion\n//#region src/auth/auth-errors.ts\n/** Error is thrown when a host config has incorrect or missing settings */\nvar InvalidHostConfigError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(`Invalid host config: ${message}`);\n\t\tthis.name = \"InvalidHostConfigError\";\n\t}\n};\n/** Error is thrown when a host config has an auth type with incompatible settings */\nvar UnexpectedAuthTypeError = class extends Error {\n\tconstructor(...expectedAuthTypes) {\n\t\tconst ors = expectedAuthTypes.map((item, index) => index === 0 ? `\"${item}\"` : `or \"${item}\"`).join(\" \");\n\t\tsuper(`HostConfig is not properly configured. authType is expected to be ${ors}`);\n\t\tthis.name = \"UnexpectedAuthTypeError\";\n\t}\n};\n/** Error is thrown when a host config uses an auth type that has not been registered */\nvar InvalidAuthTypeError = class extends Error {\n\tconstructor(authType) {\n\t\tconst validAuthModules = getRegisteredAuthModules();\n\t\tsuper(`Not a valid auth type: ${authType}, valid auth types are; '${validAuthModules.filter((name) => name.toLowerCase() !== \"qmfeembedframerauthmodule\").join(\"', '\")}'`);\n\t\tthis.name = \"InvalidAuthTypeError\";\n\t}\n};\nfunction errorToString({ title, detail, code, status }) {\n\tif (detail) return `${title} - ${detail} (Status: ${status}, Code: ${code})`;\n\treturn `${title} (Status: ${status}, Code: ${code})`;\n}\nvar AuthorizationError = class extends Error {\n\terrors;\n\tconstructor(errors) {\n\t\tif (typeof errors !== \"object\") {\n\t\t\tsuper(\"Unknown error\");\n\t\t\treturn;\n\t\t}\n\t\tconst errorArray = Array.isArray(errors) ? errors : [errors];\n\t\tsuper(errorArray.map(errorToString).join(\", \"));\n\t\tthis.errors = errorArray;\n\t}\n};\n\n//#endregion\n//#region src/auth/internal/fatal-auth-error-listeners.ts\nconst listenerRegistries = /* @__PURE__ */ new Map();\nlet lastErrorMessage = \"\";\nlet lastHostConfig;\n/**\n* Retrieves the listener registry for a given host configuration, creating one if it doesn't exist.\n*/\nfunction getAuthErrorListenerRegistryForHostConfig(hostConfig) {\n\tconst key = serializeHostConfig$1(hostConfig);\n\tlet registry = listenerRegistries.get(key);\n\tif (!registry) {\n\t\tregistry = { listeners: /* @__PURE__ */ new Set() };\n\t\tlistenerRegistries.set(key, registry);\n\t}\n\treturn registry;\n}\n/**\n* Emits a fatal authentication error to all registered listeners plus to the onAuthFailed property in the hostConfig.\n* If there are no listeners or onAuthFailed callback, the error message is logged to the console.\n*/\nfunction emitFatalAuthError(hostConfig, normalizedError) {\n\tif (hostConfig === lastHostConfig && normalizedError.message === lastErrorMessage) return;\n\tlastHostConfig = hostConfig;\n\tlastErrorMessage = normalizedError.message;\n\tlet someOneIsListening = false;\n\tconst registry = getAuthErrorListenerRegistryForHostConfig(hostConfig);\n\tfor (const listener of registry.listeners) try {\n\t\tsomeOneIsListening = true;\n\t\tlistener(normalizedError);\n\t} catch (listenerError) {\n\t\tconsole.warn(\"Error in auth error listener\", listenerError);\n\t}\n\tif (hostConfig.onAuthFailed) try {\n\t\tsomeOneIsListening = true;\n\t\thostConfig.onAuthFailed(normalizedError);\n\t} catch (callbackError) {\n\t\tconsole.warn(\"Error in onAuthFailed callback\", callbackError);\n\t}\n\tif (!someOneIsListening) console.error(normalizedError.message);\n}\n/**\n* Registers a listener for fatal auth errors. This means errors in the actual auth mechanism, i.e. misconfigurations etc.\n*/\nfunction onFatalAuthError$1(hostConfig, callback) {\n\tconst registry = getAuthErrorListenerRegistryForHostConfig(hostConfig);\n\tregistry.listeners.add(callback);\n\treturn () => {\n\t\tregistry.listeners.delete(callback);\n\t};\n}\n\n//#endregion\n//#region src/auth/auth-functions.ts\n/**\n* Set initial loggingOut value to false to make sure it has a value before any auth module is loaded\n*/\nglobalThis.loggingOut = false;\n/**\n* Determines the authType associated with a HostConfig even if it's\n* not explicitly set.\n* @param hostConfig the HostConfig containing authentication details\n* @returns promise that resolvs with the determined authentication type\n*/\nfunction determineAuthType(hostConfig) {\n\treturn determineAuthType$1(hostConfig);\n}\n/**\n* Determines if a host is cross origin or not\n* @param hostConfig the HostConfig containing authentication details\n* @private\n*/\nfunction isHostCrossOrigin(hostConfig) {\n\tif (!globalThis.location?.origin) return true;\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (Object.keys(hostConfigToUse).length === 0) return false;\n\ttry {\n\t\treturn new URL(toValidLocationUrl(hostConfigToUse)).origin !== globalThis.location.origin;\n\t} catch {}\n\treturn false;\n}\n/**\n* Determines if the host we're connecting to is running on windows or not\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function isWindows(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (typeof hostConfigToUse.forceIsWindows === \"boolean\") return hostConfigToUse.forceIsWindows;\n\tif (hostConfigToUse.host?.endsWith(\".qlik-stage.com\") || hostConfigToUse.host?.endsWith(\".qlikcloud.com\") || hostConfigToUse.host?.endsWith(\".qlikcloudgov.com\")) return false;\n\tif (hostConfigToUse.authType === \"cookie\") return false;\n\tif (hostConfigToUse.authType === \"windowscookie\") return true;\n\treturn (await getPlatform({ hostConfig })).isWindows;\n}\n/**\n* Returns a valid location url based on the supplied location string. If location is undefined the default is returned\n* @param hostConfig the HostConfig containing authentication details\n*/\nfunction toValidLocationUrl(hostConfig) {\n\tconst url = resolveHostConfig(hostConfig)?.host?.trim();\n\tlet locationUrl;\n\tif (!url) locationUrl = \"\";\n\telse if (url.toLowerCase().startsWith(\"https://\") || url.toLowerCase().startsWith(\"http://\")) locationUrl = url;\n\telse locationUrl = `https://${url}`;\n\twhile (locationUrl[locationUrl.length - 1] === \"/\") locationUrl = locationUrl.substring(0, locationUrl.length - 1);\n\treturn locationUrl;\n}\n/**\n* Returns a valid websocket location url based on the supplied location string. If location is undefined the default is returned\n* @param hostConfig the HostConfig containing authentication details\n*/\nfunction toValidWebsocketLocationUrl(hostConfig) {\n\tconst url = resolveHostConfig(hostConfig)?.host;\n\tlet locationUrl;\n\tif (!url) locationUrl = globalThis.location.origin;\n\telse if (url.toLowerCase().startsWith(\"https://\") || url.toLowerCase().startsWith(\"http://\")) locationUrl = url;\n\telse locationUrl = `https://${url}`;\n\twhile (locationUrl[locationUrl.length - 1] === \"/\") locationUrl = locationUrl.substring(0, locationUrl.length - 1);\n\treturn locationUrl.replace(leadingHttp, \"ws\");\n}\n/**\n* Returns a record of query parameters that needs to be added to websockets\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function getWebSocketAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getWebSocketAuthParams({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t});\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Returns a record of query parameters that needs to be added to resources requests, e.g.\n* image tags, etc.\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function getWebResourceAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getWebResourceAuthParams?.({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t}) || { queryParams: {} };\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Calls and return handleAuthenticationError on the authModule a host config is associated with.\n*/\nasync function handleAuthenticationError(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\tconst result = await (await getAuthModule(hostConfigToUse)).handleAuthenticationError({\n\t\t...props,\n\t\thostConfig: hostConfigToUse\n\t});\n\tconst willRetry = props.canRetry && result.retry;\n\tconst willHangUntilANewPageIsLoaded = result.preventDefault;\n\tif (!willRetry && !willHangUntilANewPageIsLoaded) {\n\t\tconst { status, errorBody } = props;\n\t\temitFatalAuthError(hostConfigToUse, normalizeInbandAuthError({\n\t\t\tstatus,\n\t\t\terrorBody\n\t\t}));\n\t}\n\treturn result;\n}\n/**\n* Returns a record of headers and a record of query params that needs to be added to outgoing rest calls\n* @param props.hostConfig the HostConfig containing authentication details\n* @param props.method the http method, which may affect what authentication are needed.\n*/\nasync function getRestCallAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getRestCallAuthParams({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t});\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Returns a record of headers and a record of query params that needs to be added to outgoing rest calls\n* @param props.hostConfig the HostConfig containing authentication details\n* @param props.method the http method, which may affect what authentication are needed.\n*/\nasync function getAccessToken(props) {\n\tconst authorizationHeader = (await getRestCallAuthParams({\n\t\tmethod: \"GET\",\n\t\t...props\n\t})).headers?.Authorization;\n\tif (authorizationHeader.indexOf(\"Bearer \") === 0) return authorizationHeader.substring(7);\n\tthrow new Error(\"Unknown format of authorization header returned by remote auth module\");\n}\n/**\n* Registers an auth module that can handle authentication. An auth module is used by specifying its name as authType in the HostConfig passed in to api calls.\n* @param name the name of the module\n* @param authModule the implementation of the AuthModule interface\n*/\nfunction registerAuthModule(name, authModule) {\n\tregisterAuthModule$1(name, authModule);\n}\n/**\n* Sets the default host config that will be used for all api calls that do not include a HostConfig\n* @param hostConfig the default HostConfig to use\n*/\nfunction setDefaultHostConfig(hostConfig) {\n\tsetDefaultHostConfig$1(hostConfig);\n}\n/**\n* Registers a host config with the given name.\n* @param name The name of the host config to be used to reference the host config later.\n* @param hostConfig The host config to register.\n*/\nfunction registerHostConfig(name, hostConfig) {\n\tregisterHostConfig$1(name, hostConfig);\n}\n/**\n* Unregisters a host config with the given name.\n* @param name The name of the host config to unregister.\n*/\nfunction unregisterHostConfig(name) {\n\tunregisterHostConfig$1(name);\n}\n/**\n* Serializes the provided hostConfig, if present, otherwise the default one.\n*/\nfunction serializeHostConfig(hostConfig) {\n\treturn serializeHostConfig$1(hostConfig);\n}\n/**\n* Throws errors if hostConfig is missing or missing properties on cross domain requests\n*/\nfunction checkForCrossDomainRequest(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (isHostCrossOrigin(hostConfigToUse)) {\n\t\tif (Object.keys(hostConfigToUse).length === 0) throw new InvalidHostConfigError(\"a host config must be provided when making a cross domain request\");\n\t\tif (!hostConfigToUse.host) throw new InvalidHostConfigError(\"A 'host' property must be set in host config when making a cross domain request\");\n\t}\n}\n/**\n* Returns a normalized host config that will always be the same instance when the serialized host config is the same.\n*/\nfunction normalizeHostConfig(hostConfig) {\n\treturn normalizeHostConfig$1(hostConfig);\n}\n/**\n* Logs out the user and sets `global.loggingOut` to true.\n* **NOTE**: Does not abort pending requests.\n*/\nconst logout = () => {\n\tglobalThis.loggingOut = true;\n\tglobalThis.location.href = \"/logout\";\n};\nconst leadingHttp = /^http/;\n/**\n* Normalizes the error object returned from the auth module to a FatalAuthError\n* @param errorBody The error body to normalize\n* @param status The status code of the error\n* @returns Either the error message or a default message\n* @private\n*/\nfunction normalizeInbandAuthError({ errorBody, status }) {\n\tconst authError = errorBody;\n\tif (typeof authError?.errors === \"object\") return { message: new AuthorizationError(authError?.errors).message };\n\treturn { message: `HTTP ${status}` };\n}\n/**\n* Normalizes the error object returned from the auth module to a FatalAuthError\n* @param err The error to normalize\n* @returns Either the error message or a default message\n* @private\n*/\nfunction normalizeAuthModuleError(err) {\n\treturn { message: err.message || \"Unknown error\" };\n}\n/**\n* Replaces the supplied host config according the following rules:\n* * If the host config is a reference to a registered host config, the registered host config will be used.\n* * If the host config is undefined or empty, the default host config will be returned.\n* * If the host config is not a reference and not empty or undefined, it will be returned as is.\n* * If the host config is empty or undefined an empty object (which represents the default cookie mode) is returned.\n* @param hostConfig - The host config to resolve\n*/\nfunction resolveHostConfig(hostConfig) {\n\tif (hostConfig?.reference) {\n\t\tconst refConfig = getRegisteredHostConfig(hostConfig.reference);\n\t\tif (!refConfig) throw new InvalidHostConfigError(`Host config with name \"${hostConfig.reference}\" not found.`);\n\t\treturn refConfig;\n\t}\n\tif (hostConfig && Object.keys(hostConfig).length > 0) return hostConfig;\n\treturn getDefaultHostConfig$1();\n}\n/**\n* Returns the default host config that is used for all qmfe api calls that do not include a host config\n*/\nfunction getDefaultHostConfig() {\n\treturn getDefaultHostConfig$1();\n}\n/**\n* Registers a callback to be invoked when a fatal authentication error occurs for the provided hostConfig.\n* @param callback The callback function to register\n* @returns A function to unregister the callback\n*/\nfunction onFatalAuthError(hostConfig, callback) {\n\treturn onFatalAuthError$1(hostConfig, callback);\n}\n/**\n* Registers a listener for page redirect requested by the auth module that is handling authentication for the provided host configuration.\n* This is typically used when embedded to let the end user explicitly approve a redirect by for instance clicking an \"authorize\" button. The user can then decide to leave that UI unauthorized\n* and stay on the page.\n* The listener is provided a `proceed` function that if called continues the redirect process. Before actually redirecting the page, the onPageRedirectStarted listeners are called.\n* Note that if more than one listener is registered, it still takes just one proceed call to continue the redirect process so it can not be used to block the redirect.\n*/\nfunction onPageRedirectRequested(hostConfig, listener) {\n\treturn onPageRedirectRequested$1(hostConfig, listener);\n}\n/**\n* Registers a listener that will be called when a page redirect is started by the auth module that is handling authentication for the provided host configuration.\n*/\nfunction onPageRedirectStarted(hostConfig, listener) {\n\treturn onPageRedirectStarted$1(hostConfig, listener);\n}\n\n//#endregion\n//#region src/interceptors/boot-interceptors.ts\n/**\n* @internal\n* The paths expected in the from core-init BFF response.\n* Exposed for testing.\n*/\nconst coreBootPaths = /* @__PURE__ */ new Set([\n\t\"/api/v1/brands/active\",\n\t\"/api/v1/claims/me\",\n\t\"/api/v1/licenses/allotments\",\n\t\"/api/v1/licenses/allotments/me\",\n\t\"/api/v1/licenses/number\",\n\t\"/api/v1/licenses/status\",\n\t\"/api/v1/tenant-settings\",\n\t\"/api/v1/tenants/me\",\n\t\"/api/v1/user-settings\",\n\t\"/api/v1/users/me\",\n\t\"/api/v1/user-locale\"\n]);\n/**\n* @internal\n* The path of the core-init BFF response.\n* Exposed for testing.\n*/\nconst coreBootEndpoint = \"/api/v1/boot/core-init\";\nlet coreBootPromises = {};\nlet enableDespiteNode = false;\nfunction interceptorEnabled() {\n\treturn !isNode() || enableDespiteNode;\n}\n/**\n* An interceptor that populates the cache from the response of a _backend\n* for frontend_ endpoint. This endpoint contains the response of the most common\n* initial calls, mainly from **qmfe-core**.\n*\n* If the interceptor finds a matching call it runs once and then removes itself after\n* populating the cache causing the original request (and following ones) to hit the cache instead.\n*\n* The endpoint is implemented in the _customizations_ service and should\n* contain the responses of the requests specified in 'coreBootPaths'.\n*/\nconst coreBootInterceptor = async (request, proceed) => {\n\tif (!interceptorEnabled()) return proceed(request);\n\tif (request.pathTemplate !== \"/api/v1/features\" && !coreBootPaths.has(request.pathTemplate)) return proceed(request);\n\tconst hostConfig = request.options?.hostConfig;\n\tif (hostConfig?.authType === \"noauth\" || await isWindows(hostConfig) || (await getPlatform({ hostConfig })).isCloudConsole) return proceed(request);\n\tconst serializedHostConfig = serializeHostConfig$1(request.options?.hostConfig);\n\tcoreBootPromises[serializedHostConfig] ??= callCoreBootAndFillCache(hostConfig, serializedHostConfig);\n\tif (request.pathTemplate !== \"/api/v1/features\") await coreBootPromises[serializedHostConfig];\n\treturn proceed(request);\n};\nasync function callCoreBootAndFillCache(hostConfig, serializedHostConfig) {\n\tconst bootRequest = {\n\t\tmethod: \"GET\",\n\t\tpathTemplate: coreBootEndpoint,\n\t\toptions: { hostConfig }\n\t};\n\ttry {\n\t\tconst bootResponse = await invokeFetch(\".global\", bootRequest);\n\t\tconst locationUrl = toValidLocationUrl(hostConfig);\n\t\tpopulateCacheFrom(bootResponse.data, coreBootPaths, serializedHostConfig, locationUrl);\n\t} catch (e) {\n\t\tconsole.error(\"Failed to bootstrap core-info:\", e);\n\t}\n}\nfunction populateCacheFrom(responses, pathsToInclude, serializedHostConfig, locationUrl) {\n\tif (!responses) return;\n\tfor (const res of responses) {\n\t\tif (!pathsToInclude.has(res.path)) continue;\n\t\tconst completeUrl = locationUrl + res.path;\n\t\tconst { status, method, data } = res;\n\t\tif (typeof data === \"undefined\") continue;\n\t\tif (status && (status < 200 || status >= 300)) continue;\n\t\tconst response = Promise.resolve({\n\t\t\tstatus: status || 200,\n\t\t\tdata\n\t\t});\n\t\tconst cacheKey = toCacheKey({\n\t\t\turl: completeUrl,\n\t\t\tserializedHostConfig\n\t\t});\n\t\tupdateCache(globalCacheNamespace, {\n\t\t\tmethod: method || \"GET\",\n\t\t\tcompleteUrl,\n\t\t\tcacheKey\n\t\t}, response);\n\t}\n}\n\n//#endregion\n//#region src/interceptors/interceptors.ts\nlet GLOBAL_INTERCEPTORS;\nfunction createInterceptors() {\n\tconst interceptors = [...GLOBAL_INTERCEPTORS?.getInterceptors() || []];\n\treturn {\n\t\t/**\n\t\t* Adds an interceptor to the global interceptor stack\n\t\t* Returns the newly added interceptor\n\t\t* @param interceptor the interceptor to add\n\t\t* @returns the newly added interceptor\n\t\t*/\n\t\taddInterceptor: (interceptor) => {\n\t\t\tinterceptors.push(interceptor);\n\t\t\treturn interceptor;\n\t\t},\n\t\t/**\n\t\t* Removes an interceptor from the global interceptor stack\n\t\t* Returns null if the interceptor was not found\n\t\t* @param interceptor the interceptor remove\n\t\t* @returns the removed interceptor or null if not found\n\t\t*/\n\t\tremoveInterceptor: (interceptor) => {\n\t\t\tconst index = interceptors.indexOf(interceptor);\n\t\t\tlet removed;\n\t\t\tif (index !== -1) removed = interceptors.splice(index, 1)[0];\n\t\t\treturn removed || null;\n\t\t},\n\t\t/**\n\t\t* Gets all registered interceptors\n\t\t*/\n\t\tgetInterceptors: () => interceptors\n\t};\n}\nlet addDefaultInterceptorsRun = false;\nfunction addDefaultInterceptors() {\n\tif (addDefaultInterceptorsRun) return;\n\tif (isBrowser()) {\n\t\tconst readFlagsFromUrlQuery = () => {\n\t\t\tconst featuresParam = new URLSearchParams(window.location.search).get(\"features\");\n\t\t\tif (!featuresParam) return {};\n\t\t\treturn featuresParam.split(\",\").map((item) => item.trim()).reduce((map, obj) => {\n\t\t\t\tconst value = !obj.startsWith(\"!\");\n\t\t\t\tconst key = value ? obj : obj.substring(1);\n\t\t\t\tmap[key] = value;\n\t\t\t\treturn map;\n\t\t\t}, {});\n\t\t};\n\t\tconst readFlagsFromLocalStorage = () => {\n\t\t\ttry {\n\t\t\t\tconst featuresParam = localStorage.getItem(\"qcs-features\");\n\t\t\t\tif (featuresParam) return JSON.parse(featuresParam);\n\t\t\t\treturn {};\n\t\t\t} catch {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t};\n\t\tconst flagsFromUrl = readFlagsFromUrlQuery();\n\t\tconst flagsFromLocalStorage = readFlagsFromLocalStorage();\n\t\tconst featuresInterceptor = async (request, proceed) => {\n\t\t\tlet resultPromise;\n\t\t\tif (request.pathTemplate === \"/api/v1/features\") {\n\t\t\t\tresultPromise = proceed(request);\n\t\t\t\tconst result = await resultPromise;\n\t\t\t\treturn {\n\t\t\t\t\t...result,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t...result.data,\n\t\t\t\t\t\t...flagsFromLocalStorage,\n\t\t\t\t\t\t...flagsFromUrl\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn proceed(request);\n\t\t};\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(featuresInterceptor);\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(coreBootInterceptor);\n\t\tconst isProdHost = () => {\n\t\t\ttry {\n\t\t\t\tconst host = window.location.hostname;\n\t\t\t\treturn host === \"qlikcloud.com\" || host.endsWith(\".qlikcloud.com\");\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\t\tconst readSignadotRoutingKey = () => {\n\t\t\tif (isProdHost()) return null;\n\t\t\ttry {\n\t\t\t\tconst raw = localStorage.getItem(\"qcs-signadot-key\");\n\t\t\t\tif (raw === null) return null;\n\t\t\t\tconst trimmed = raw.trim();\n\t\t\t\treturn trimmed.length > 0 ? trimmed : null;\n\t\t\t} catch {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t\tconst upsertSignadotBaggage = (existing, key) => {\n\t\t\tconst entry = `sd-routing-key=${key}`;\n\t\t\tif (!existing) return entry;\n\t\t\tconst kept = existing.split(\",\").map((part) => part.trim()).filter((part) => part.length > 0 && !part.startsWith(\"sd-routing-key=\"));\n\t\t\tkept.push(entry);\n\t\t\treturn kept.join(\",\");\n\t\t};\n\t\tconst signadotInterceptor = async (request, proceed) => {\n\t\t\tconst key = readSignadotRoutingKey();\n\t\t\tif (!key) return proceed(request);\n\t\t\tconst existingHeaders = request.options?.headers || {};\n\t\t\treturn proceed({\n\t\t\t\t...request,\n\t\t\t\toptions: {\n\t\t\t\t\t...request.options,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...existingHeaders,\n\t\t\t\t\t\tbaggage: upsertSignadotBaggage(existingHeaders.baggage, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(signadotInterceptor);\n\t}\n\taddDefaultInterceptorsRun = true;\n}\n/**\n* The global interceptor stack\n*/\nGLOBAL_INTERCEPTORS = createInterceptors();\n/**\n* Adds an interceptor to the global interceptor stack\n* Returns the newly added interceptor\n* @param interceptor the interceptor to add\n* @returns the newly added interceptor\n*/\nfunction addInterceptor(interceptor) {\n\treturn GLOBAL_INTERCEPTORS.addInterceptor(interceptor);\n}\n/**\n* Removes an interceptor from the global interceptor stack\n* @param interceptor the interceptor remove\n*/\nfunction removeInterceptor(interceptor) {\n\treturn GLOBAL_INTERCEPTORS.removeInterceptor(interceptor);\n}\n/**\n* Gets all registered interceptors\n*/\nfunction getInterceptors() {\n\treturn GLOBAL_INTERCEPTORS.getInterceptors();\n}\n/**\n* The interceptors API\n*/\nconst interceptors = {\n\taddInterceptor,\n\tremoveInterceptor,\n\tgetInterceptors,\n\tcreateInterceptors\n};\n\n//#endregion\nexport { InvalidHostConfigError as A, getPlatform as B, serializeHostConfig as C, unregisterHostConfig as D, toValidWebsocketLocationUrl as E, appendQueryToUrl as F, EncodingError as I, InvokeFetchError as L, clearApiCache as M, invokeFetch as N, AuthorizationError as O, parseFetchResponse as P, exposeInternalApiOnWindow as R, registerHostConfig as S, toValidLocationUrl as T, normalizeHostConfig as _, interceptors as a, onPageRedirectStarted as b, getAccessToken as c, getWebResourceAuthParams as d, getWebSocketAuthParams as f, logout as g, isWindows as h, getInterceptors as i, UnexpectedAuthTypeError as j, InvalidAuthTypeError as k, getDefaultHostConfig as l, isHostCrossOrigin as m, addInterceptor as n, removeInterceptor as o, handleAuthenticationError as p, createInterceptors as r, determineAuthType as s, addDefaultInterceptors as t, getRestCallAuthParams as u, onFatalAuthError as v, setDefaultHostConfig as w, registerAuthModule as x, onPageRedirectRequested as y, generateRandomString as z };","import { A as InvalidHostConfigError, C as serializeHostConfig, D as unregisterHostConfig, E as toValidWebsocketLocationUrl, O as AuthorizationError, S as registerHostConfig, T as toValidLocationUrl, _ as normalizeHostConfig, b as onPageRedirectStarted, c as getAccessToken, d as getWebResourceAuthParams, f as getWebSocketAuthParams, g as logout, h as isWindows, j as UnexpectedAuthTypeError, k as InvalidAuthTypeError, l as getDefaultHostConfig, m as isHostCrossOrigin, p as handleAuthenticationError, s as determineAuthType, u as getRestCallAuthParams, v as onFatalAuthError, w as setDefaultHostConfig, x as registerAuthModule, y as onPageRedirectRequested } from \"./interceptors-_UakH7Gk.js\";\n\n//#region src/auth/auth.ts\n/**\n* Provides functionalities for authentication with Qlik backends.\n*/\nconst auth = {\n\tdetermineAuthType,\n\tgetDefaultHostConfig,\n\tgetRestCallAuthParams,\n\tgetWebResourceAuthParams,\n\tgetWebSocketAuthParams,\n\thandleAuthenticationError,\n\tisHostCrossOrigin,\n\tisWindows,\n\tlogout,\n\tregisterAuthModule,\n\tregisterHostConfig,\n\tserializeHostConfig,\n\tsetDefaultHostConfig,\n\ttoValidLocationUrl,\n\ttoValidWebsocketLocationUrl,\n\tunregisterHostConfig,\n\tnormalizeHostConfig,\n\tonFatalAuthError,\n\tonPageRedirectRequested,\n\tonPageRedirectStarted\n};\n\n//#endregion\nexport { AuthorizationError, InvalidAuthTypeError, InvalidHostConfigError, UnexpectedAuthTypeError, auth as default, determineAuthType, getAccessToken, getDefaultHostConfig, getRestCallAuthParams, getWebResourceAuthParams, getWebSocketAuthParams, handleAuthenticationError, isHostCrossOrigin, isWindows, logout, normalizeHostConfig, onFatalAuthError, onPageRedirectRequested, onPageRedirectStarted, registerAuthModule, registerHostConfig, serializeHostConfig, setDefaultHostConfig, toValidLocationUrl, toValidWebsocketLocationUrl, unregisterHostConfig };"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"auth-Cndp79dH-CZLQ7V4e.js","sources":["../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/auth-types.js","../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/chunks/interceptors-_UakH7Gk.js","../../../../node_modules/.pnpm/@qlik+api@2.14.1/node_modules/@qlik/api/chunks/auth-Cndp79dH.js"],"sourcesContent":["//#region src/auth/auth-types.ts\n/**\n* These properties are always allowed in the host config, even if they are not defined in the HostConfig interface\n* for the specific auth module.\n*/\nconst hostConfigCommonProperties = [\n\t\"authType\",\n\t\"autoRedirect\",\n\t\"authRedirectUserConfirmation\",\n\t\"embedRuntimeUrl\",\n\t\"host\",\n\t\"onAuthFailed\"\n];\nconst authTypesThatCanBeOmitted = [\n\t\"apikey\",\n\t\"oauth2\",\n\t\"cookie\",\n\t\"windowscookie\",\n\t\"reference\",\n\t\"anonymous\",\n\t\"pfx\"\n];\n\n//#endregion\nexport { authTypesThatCanBeOmitted, hostConfigCommonProperties };","import { a as sortKeys, i as isNode, r as isBrowser, t as cleanFalsyValues } from \"./utils-6sNODUN0.js\";\nimport { authTypesThatCanBeOmitted, hostConfigCommonProperties } from \"../auth-types.js\";\n\n//#region src/platform/platform-functions.ts\nconst getPlatform = async (options = {}) => {\n\tconst hc = resolveHostConfig(options.hostConfig);\n\tif (hc.authType === \"mock-backend-rest-recorder\") return hc.recordGetPlatform();\n\tif (hc?.authType === \"mock-backend\") return hc.mockGetPlatform();\n\tif (hc?.authType === \"noauth\") return result({ isUnknown: true });\n\tlet productInfo = isBrowser() ? window.QlikMain?.PRODUCT_INFO : void 0;\n\tif (!productInfo) {\n\t\tconst { data, status } = await getProductInfo(options);\n\t\tproductInfo = data;\n\t\tif (status === 404) return result({ isUnknown: true });\n\t\tif (!productInfo || status <= 399 && status >= 300) return result({\n\t\t\tisQSE: true,\n\t\t\tisWindows: true\n\t\t});\n\t}\n\tconst deploymentType = (productInfo.composition?.deploymentType || \"\").toLowerCase();\n\tif (deploymentType === \"qliksenseserver\") return result({\n\t\tisQSE: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"qliksensedesktop\") return result({\n\t\tisQSD: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"qliksensemobile\") return result({\n\t\tisQSE: true,\n\t\tisWindows: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (deploymentType === \"cloud-console\") return result({\n\t\tisCloud: true,\n\t\tisCloudConsole: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\tif (productInfo.composition?.provider === \"fedramp\") return result({\n\t\tisCloud: true,\n\t\tisQCG: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n\treturn result({\n\t\tisCloud: true,\n\t\tisQCS: true,\n\t\tmeta: extractMeta(productInfo)\n\t});\n};\nconst productInfoPromises = {};\n/**\n* Retrieves the full complete url to the product-info file. The full URL\n* is the cache key. Without templating the URL we'd cache `\"\"` as an entry.\n* @private\n*/\nfunction templateUrl(baseUrl) {\n\treturn `${baseUrl}/resources/autogenerated/product-info.json`;\n}\n/**\n* Retrieves the product information as a JSON object.\n* It makes an HTTP GET request to fetch the autogenerated product-info.json file.\n*\n* `data` is `undefined` if the file can not be retrieved.\n*/\nconst getProductInfo = async ({ hostConfig, noCache } = {}) => {\n\tconst completeUrl = templateUrl(toValidLocationUrl(hostConfig));\n\ttry {\n\t\tif (!(completeUrl in productInfoPromises)) {\n\t\t\tconst fetchOptions = {};\n\t\t\tif (globalThis.QlikMain?.resourceNeedsCredentials(completeUrl)) fetchOptions.credentials = \"include\";\n\t\t\tconst productInfoPromise = fetch(completeUrl, fetchOptions).then(async (res) => {\n\t\t\t\tif (res.ok) return {\n\t\t\t\t\tdata: await res.json(),\n\t\t\t\t\tstatus: res.status\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\tstatus: res.status\n\t\t\t\t};\n\t\t\t});\n\t\t\tproductInfoPromises[completeUrl] = productInfoPromise;\n\t\t}\n\t\tconst response = await productInfoPromises[completeUrl];\n\t\tif (response.status >= 400 || !response.data) delete productInfoPromises[completeUrl];\n\t\treturn response;\n\t} catch {\n\t\tdelete productInfoPromises[completeUrl];\n\t\treturn {\n\t\t\tdata: void 0,\n\t\t\tstatus: 500\n\t\t};\n\t} finally {\n\t\tif (noCache) delete productInfoPromises[completeUrl];\n\t}\n};\n/** @internal */\nconst extractMeta = (data) => {\n\tconst urls = data.externalUrls;\n\tif (!urls) return;\n\tconst productName = data.composition?.productName ?? \"Qlik\";\n\tconst releaseLabel = data.composition?.releaseLabel || \"-\";\n\tconst productLabel = releaseLabel === \"-\" ? productName : `${productName} (${releaseLabel})`;\n\treturn {\n\t\tproductId: data.composition?.senseId ?? \"qlik\",\n\t\tproductLabel,\n\t\tversion: data.composition?.version,\n\t\turls: {\n\t\t\tpersonalHelpBaseUrl: urls.personalHelpBaseUrl,\n\t\t\tpersonalUpgradeBase: urls.personalUpgradeBase,\n\t\t\tpersonalUpgradeUrl: urls.personalUpgradeUrl,\n\t\t\tserverHelpBaseUrl: urls.serverHelpBaseUrl,\n\t\t\tqlikWebPageUrl: urls.qlikWebPageUrl\n\t\t}\n\t};\n};\nconst result = (data) => ({\n\tisCloud: false,\n\tisQCS: false,\n\tisQCG: false,\n\tisCloudConsole: false,\n\tisWindows: false,\n\tisQSE: false,\n\tisQSD: false,\n\tisUnknown: false,\n\t...data\n});\n\n//#endregion\n//#region src/utils/random.ts\nconst NANOID_ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-\";\nconst HEX_ALPHABET = \"0123456789abcdef\";\n/**\n* Generates a random string from the given alphabet using crypto.getRandomValues\n* Works in both browser and Node.js environments\n*/\nfunction generateRandomFromAlphabet(alphabet, length) {\n\tconst bytes = new Uint8Array(length);\n\tglobalThis.crypto.getRandomValues(bytes);\n\tlet result = \"\";\n\tfor (let i = 0; i < length; i++) result += alphabet[bytes[i] % alphabet.length];\n\treturn result;\n}\n/**\n* Method helper for generating a random string [a-zA-Z0-9\\-_]{length}\n* @param length - the length of the string\n*/\nfunction generateRandomString(targetLength) {\n\treturn generateRandomFromAlphabet(NANOID_ALPHABET, targetLength);\n}\n/**\n* Method helper for generating a random hexadecimal-string [0-9a-f]{length}\n* @param length - the length of the string\n*/\nfunction generateRandomHexString(targetLength) {\n\treturn generateRandomFromAlphabet(HEX_ALPHABET, targetLength);\n}\n\n//#endregion\n//#region src/auth/internal/host-config-functions.ts\nconst emptyHostConfig = {};\nconst normalizedHostConfigs = /* @__PURE__ */ new Map();\n/**\n* Returns a new host config with all default and falsy values removed.\n* @param hostConfig - The host config to fill with defaults\n* @returns\n*/\nfunction removeDefaults(hostConfig) {\n\tconst cleanedHostConfig = cleanFalsyValues(hostConfig) || {};\n\tif (cleanedHostConfig.host) cleanedHostConfig.host = toValidLocationUrl(cleanedHostConfig);\n\tif (isBrowser()) {\n\t\tif (toValidLocationUrl(cleanedHostConfig) === window.location.origin) delete cleanedHostConfig.host;\n\t}\n\tif (cleanedHostConfig.authType && authTypesThatCanBeOmitted.includes(cleanedHostConfig.authType)) delete cleanedHostConfig.authType;\n\treturn cleanedHostConfig;\n}\nfunction globalReplacer(key, value) {\n\tif (typeof value === \"function\") return;\n\treturn value;\n}\n/**\n* Serializes the provided hostConfig, if present, otherwise the default one.\n*/\nfunction serializeHostConfig$1(hostConfig) {\n\tconst sorted = sortKeys(removeDefaults(resolveHostConfig(hostConfig)));\n\treturn JSON.stringify(sorted, globalReplacer);\n}\nconst registeredHostConfigs = /* @__PURE__ */ new Map();\n/**\n* Registers a host config with the given name.\n* @param name The name of the host config to be used to reference the host config later.\n* @param hostConfig The host config to register.\n*/\nfunction registerHostConfig$1(name, hostConfig) {\n\tconst reference = hostConfig?.reference || null;\n\tif (reference && !registeredHostConfigs.has(reference)) throw new InvalidHostConfigError(`Host config with reference \"${reference}\" is not registered. Please register it before using it.`);\n\tif (registeredHostConfigs.has(name)) console.warn(`registerHostConfig: Host config with name \"${name}\" is already registered. Overwriting.`);\n\tregisteredHostConfigs.set(name, hostConfig);\n}\n/**\n* Unregisters a host config with the given name.\n* @param name The name of the host config to unregister.\n*/\nfunction unregisterHostConfig$1(name) {\n\tif (registeredHostConfigs.has(name)) registeredHostConfigs.delete(name);\n\telse console.warn(`unregisterHostConfig: Host config with name \"${name}\" not found.`);\n}\n/**\n* Gets the host config with the given name.\n* @private\n* @param name The name of the host config to get.\n* @returns The host config, or undefined if not found.\n*/\nfunction getRegisteredHostConfig(name) {\n\treturn registeredHostConfigs.get(name);\n}\n/**\n* Sets the default host config that will be used for all api calls that do not include a HostConfig\n* @private\n* @param hostConfig the default HostConfig to use\n*/\nfunction setDefaultHostConfig$1(hostConfig) {\n\tregisterHostConfig$1(\"default\", hostConfig || {});\n}\n/**\n* Gets the default host config that will be used for all qmfe api calls that do not include a HostConfig.\n* @private\n* @returns The default host config that will be used for all qmfe api calls that do not include a HostConfig\n*/\nfunction getDefaultHostConfig$1() {\n\treturn getRegisteredHostConfig(\"default\") || {};\n}\nfunction normalizeHostConfig$1(hostConfig) {\n\tconst suppliedHostConfigOrEmpty = hostConfig || emptyHostConfig;\n\tconst serializedHostConfigKey = serializeHostConfig$1(suppliedHostConfigOrEmpty);\n\tlet normalizedHostConfig = normalizedHostConfigs.get(serializedHostConfigKey);\n\tif (!normalizedHostConfig) {\n\t\tnormalizedHostConfig = removeDefaults(resolveHostConfig(suppliedHostConfigOrEmpty));\n\t\tnormalizedHostConfigs.set(serializedHostConfigKey, normalizedHostConfig);\n\t}\n\treturn normalizedHostConfig;\n}\n\n//#endregion\n//#region src/auth/internal/page-redirect-request-listeners.ts\n/**\n* A store containing all listener registries for different host configurations.\n*/\nconst listenerRegistries$1 = /* @__PURE__ */ new Map();\n/**\n* Retrieves the listener registry for a given host configuration, creating one if it doesn't exist.\n*/\nfunction getRegistryForHostConfig(hostConfig) {\n\tconst key = serializeHostConfig$1(hostConfig);\n\tlet registry = listenerRegistries$1.get(key);\n\tif (!registry) {\n\t\tregistry = {\n\t\t\tredirectRequestedListeners: /* @__PURE__ */ new Set(),\n\t\t\tredirectStartedListeners: /* @__PURE__ */ new Set()\n\t\t};\n\t\tlistenerRegistries$1.set(key, registry);\n\t}\n\treturn registry;\n}\n/**\n* Registers a listener for page redirects requested by auth modules.\n* @param hostConfig\n* @param listener\n* @returns\n*/\nfunction onPageRedirectRequested$1(hostConfig, listener) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tregistry.redirectRequestedListeners.add(listener);\n\treturn () => {\n\t\tregistry.redirectRequestedListeners.delete(listener);\n\t};\n}\nfunction onPageRedirectStarted$1(hostConfig, listener) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tregistry.redirectStartedListeners.add(listener);\n\treturn () => {\n\t\tregistry.redirectStartedListeners.delete(listener);\n\t};\n}\nfunction requestRedirect(hostConfig) {\n\tconst registry = getRegistryForHostConfig(hostConfig);\n\tconst hasRedirectListener = registry.redirectRequestedListeners.size > 0 || hostConfig.authRedirectUserConfirmation;\n\tif (hostConfig.autoRedirect || !hasRedirectListener) return Promise.resolve();\n\tif (typeof hostConfig.authRedirectUserConfirmation === \"function\") return hostConfig.authRedirectUserConfirmation().catch(() => {});\n\treturn new Promise((resolve) => {\n\t\tconst proceed = () => {\n\t\t\tfor (const startedListener of registry.redirectStartedListeners) try {\n\t\t\t\tstartedListener();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn(error);\n\t\t\t}\n\t\t\tresolve();\n\t\t};\n\t\tfor (const requestListener of registry.redirectRequestedListeners) try {\n\t\t\trequestListener({ proceed });\n\t\t} catch (error) {\n\t\t\tconsole.warn(error);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/utils/expose-internal-test-apis.ts\nfunction exposeInternalApiOnWindow(name, fn) {\n\tconst hostname = globalThis.location?.hostname?.toLowerCase();\n\tconst isLocalhost = hostname === \"localhost\";\n\tconst isQlikStageDomain = hostname?.endsWith(\".qlik-stage.com\");\n\tif (isLocalhost || isQlikStageDomain) {\n\t\tif (globalThis.QlikMain) {\n\t\t\tif (globalThis.QlikMain.INTERNAL__DO_NOT_USE.qix === void 0) globalThis.QlikMain.INTERNAL__DO_NOT_USE.qix = {};\n\t\t\tglobalThis.QlikMain.INTERNAL__DO_NOT_USE.qix[name] = fn;\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/storage-helpers.ts\nconst storagePrefix = \"qlik-qmfe-api\";\nfunction getTopicFromOauthHostConfig(hostConfig) {\n\tlet topic = hostConfig.clientId + (hostConfig.scope ? `_${hostConfig.scope}` : \"_user_default\");\n\tif (hostConfig.subject) topic += `_${hostConfig.subject}`;\n\tif (hostConfig.userId) topic += `_${hostConfig.userId}`;\n\treturn topic;\n}\nfunction getTopicFromAnonHostConfig(hostConfig) {\n\treturn `${hostConfig.accessCode}_${hostConfig.clientId}`;\n}\n/**\n* A map from oauth client id to promise of an access token\n*/\nconst cachedTokens = {};\n/**\n* Used for testing.\n*/\nfunction clearAllCachedTokens() {\n\tfor (const key in cachedTokens) delete cachedTokens[key];\n}\nexposeInternalApiOnWindow(\"clearAllAccessTokens\", () => {\n\tconsole.log(\"Clearing tokens\", cachedTokens);\n\tObject.keys(cachedTokens).forEach((key) => {\n\t\tconsole.log(\"Clearing access tokens for\", key);\n\t\tdeleteFromLocalStorage(key, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(key, [\"access-token\", \"refresh-token\"]);\n\t});\n\tclearAllCachedTokens();\n});\nfunction saveInLocalStorage(topic, name, value) {\n\tlocalStorage.setItem(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction saveInSessionStorage(topic, name, value) {\n\tsessionStorage.setItem(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction saveInCustomSecretStorage(storage, topic, name, value) {\n\treturn storage.store(`${storagePrefix}-${topic}-${name}`, value);\n}\nfunction loadFromLocalStorage(topic, name) {\n\treturn localStorage.getItem(`${\"qlik-qmfe-api\"}-${topic}-${name}`) || void 0;\n}\nfunction loadFromSessionStorage(topic, name) {\n\treturn sessionStorage.getItem(`${\"qlik-qmfe-api\"}-${topic}-${name}`) || void 0;\n}\nfunction loadFromCustomSecretStorage(storage, topic, name) {\n\treturn storage.get(`${storagePrefix}-${topic}-${name}`);\n}\nfunction deleteFromLocalStorage(topic, names) {\n\tnames.forEach((name) => localStorage.removeItem(`${storagePrefix}-${topic}-${name}`));\n}\nfunction deleteFromSessionStorage(topic, names) {\n\tnames.forEach((name) => sessionStorage.removeItem(`${storagePrefix}-${topic}-${name}`));\n}\nfunction deleteFromCustomSecretStorage(storage, topic, names) {\n\treturn Promise.all(names.map((name) => storage.delete(`${storagePrefix}-${topic}-${name}`)));\n}\nfunction loadAndDeleteFromSessionStorage(topic, name) {\n\tconst id = `${storagePrefix}-${topic}-${name}`;\n\tconst result = sessionStorage.getItem(id) || void 0;\n\tsessionStorage.removeItem(id);\n\treturn result;\n}\n/**\n* Returns true if the provided storage object implements the SecretStorage interface, false otherwise.\n*/\nfunction isCustomSecretStorage(storage) {\n\treturn typeof storage === \"object\" && storage !== null && typeof storage.store === \"function\" && typeof storage.get === \"function\" && typeof storage.delete === \"function\";\n}\nasync function loadOauthTokensFromStorage(topic, accessTokenStorage) {\n\tlet accessToken;\n\tlet refreshToken;\n\tif (accessTokenStorage === \"local\") {\n\t\taccessToken = loadFromLocalStorage(topic, \"access-token\");\n\t\trefreshToken = loadFromLocalStorage(topic, \"refresh-token\");\n\t} else if (accessTokenStorage === \"session\") {\n\t\taccessToken = loadFromSessionStorage(topic, \"access-token\");\n\t\trefreshToken = loadFromSessionStorage(topic, \"refresh-token\");\n\t} else if (isCustomSecretStorage(accessTokenStorage)) {\n\t\taccessToken = await loadFromCustomSecretStorage(accessTokenStorage, topic, \"access-token\");\n\t\trefreshToken = await loadFromCustomSecretStorage(accessTokenStorage, topic, \"refresh-token\");\n\t}\n\tif (accessToken) return {\n\t\taccessToken,\n\t\trefreshToken\n\t};\n}\nasync function loadCachedOauthTokens(hostConfig) {\n\treturn cachedTokens[getTopicFromOauthHostConfig(hostConfig)];\n}\nasync function loadOrAcquireAccessTokenOauth(hostConfig, acquireTokens) {\n\tif (!hostConfig.clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to also provide a clientId\");\n\treturn loadOrAcquireAccessToken(getTopicFromOauthHostConfig(hostConfig), acquireTokens, hostConfig.noCache, hostConfig.accessTokenStorage);\n}\nasync function loadOrAcquireAccessTokenAnon(hostConfig, acquireTokens) {\n\tif (!hostConfig.accessCode) throw new InvalidHostConfigError(\"A host config with authType set to \\\"anonymous\\\" has to also provide an accessCode\");\n\treturn loadOrAcquireAccessToken(getTopicFromAnonHostConfig(hostConfig), acquireTokens, false, void 0);\n}\nasync function loadOrAcquireAccessToken(topic, acquireTokens, noCache, accessTokenStorage) {\n\tif (noCache) return acquireTokens();\n\tcachedTokens[topic] = cachedTokens[topic] || (async () => {\n\t\tlet tokens = await loadOauthTokensFromStorage(topic, accessTokenStorage);\n\t\tif (tokens) return tokens;\n\t\ttokens = await acquireTokens();\n\t\tif (accessTokenStorage === \"local\" && tokens) {\n\t\t\tif (tokens.accessToken) saveInLocalStorage(topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) saveInLocalStorage(topic, \"refresh-token\", tokens.refreshToken);\n\t\t} else if (accessTokenStorage === \"session\" && tokens) {\n\t\t\tif (tokens.accessToken) saveInSessionStorage(topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) saveInSessionStorage(topic, \"refresh-token\", tokens.refreshToken);\n\t\t} else if (isCustomSecretStorage(accessTokenStorage) && tokens) {\n\t\t\tif (tokens.accessToken) await saveInCustomSecretStorage(accessTokenStorage, topic, \"access-token\", tokens.accessToken);\n\t\t\tif (tokens.refreshToken) await saveInCustomSecretStorage(accessTokenStorage, topic, \"refresh-token\", tokens.refreshToken);\n\t\t}\n\t\treturn tokens;\n\t})();\n\treturn cachedTokens[topic];\n}\nfunction clearStoredOauthTokens(hostConfig) {\n\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\tdelete cachedTokens[topic];\n\tif (isBrowser()) {\n\t\tdeleteFromLocalStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t}\n\tif (isCustomSecretStorage(hostConfig.accessTokenStorage)) deleteFromCustomSecretStorage(hostConfig.accessTokenStorage, topic, [\"access-token\", \"refresh-token\"]);\n}\nfunction clearStoredAnonymousTokens(hostConfig) {\n\tconst topic = getTopicFromAnonHostConfig(hostConfig);\n\tdelete cachedTokens[topic];\n\tif (isBrowser()) {\n\t\tdeleteFromLocalStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t\tdeleteFromSessionStorage(topic, [\"access-token\", \"refresh-token\"]);\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/oauth-utils.ts\nfunction toPerformInteractiveLoginFunction(performInteractiveLogin) {\n\tif (typeof performInteractiveLogin === \"string\") {\n\t\tconst fn = lookupInteractiveLoginFn(performInteractiveLogin);\n\t\tif (!fn) throw new Error(`No such function: ${performInteractiveLogin}`);\n\t\treturn fn;\n\t}\n\treturn performInteractiveLogin;\n}\nfunction lookupGetAccessFn(getAccessToken) {\n\treturn globalThis[getAccessToken];\n}\nfunction lookupInteractiveLoginFn(name) {\n\treturn globalThis[name];\n}\nfunction handlePossibleErrors(data) {\n\tif (data.errors) throw new AuthorizationError(data.errors);\n}\nfunction toQueryString(queryParams) {\n\tconst queryParamsKeys = Object.keys(queryParams);\n\tqueryParamsKeys.sort();\n\treturn queryParamsKeys.map((k) => `${k}=${queryParams[k]}`).join(\"&\");\n}\nfunction byteArrayToBase64(hashArray) {\n\tlet result;\n\tif (isBrowser()) {\n\t\tconst byteArrayToString = String.fromCharCode.apply(null, hashArray);\n\t\tresult = btoa(byteArrayToString);\n\t} else if (isNode()) result = Buffer.from(hashArray).toString(\"base64\");\n\telse throw new Error(\"Environment not supported for oauth2 authentication\");\n\treturn result;\n}\n/**\n* @param message string to hash\n* @returns sha-256 hashed string\n*/\nasync function sha256(message) {\n\tconst msgBuffer = new TextEncoder().encode(message);\n\tconst hashBuffer = await globalThis.crypto.subtle.digest(\"SHA-256\", msgBuffer);\n\treturn byteArrayToBase64(Array.from(new Uint8Array(hashBuffer))).replaceAll(/\\+/g, \"-\").replaceAll(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nasync function createInteractiveLoginUrl(hostConfig, redirectUri, state, verifier) {\n\tconst clientId = hostConfig.clientId || \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tconst codeChallenge = await sha256(verifier);\n\treturn `${locationUrl}/oauth/authorize?${toQueryString({\n\t\tresponse_type: \"code\",\n\t\tclient_id: clientId,\n\t\tredirect_uri: redirectUri,\n\t\tscope: hostConfig.scope || \"user_default\",\n\t\tstate,\n\t\tcode_challenge: codeChallenge,\n\t\tcode_challenge_method: \"S256\"\n\t})}`;\n}\nasync function startFullPageLoginFlow(hostConfig) {\n\tconst clientId = hostConfig.clientId || \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tconst verifier = generateRandomString(128);\n\tconst state = generateRandomString(43);\n\tconst codeChallenge = await sha256(verifier);\n\tconst redirectUri = hostConfig.redirectUri || globalThis.location.href;\n\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\tclearStoredOauthTokens(hostConfig);\n\tsaveInSessionStorage(topic, \"state\", state);\n\tsaveInSessionStorage(topic, \"verifier\", verifier);\n\tsaveInSessionStorage(topic, \"href\", globalThis.location.href);\n\tsaveInSessionStorage(\"\", \"client-in-progress\", topic);\n\tconst url = `${locationUrl}/oauth/authorize?${toQueryString({\n\t\tresponse_type: \"code\",\n\t\tclient_id: clientId,\n\t\tredirect_uri: redirectUri,\n\t\tscope: hostConfig.scope || \"user_default\",\n\t\tstate,\n\t\tcode_challenge: codeChallenge,\n\t\tcode_challenge_method: \"S256\"\n\t})}`;\n\tglobalThis.location.replace(url);\n}\nasync function exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, redirectUri) {\n\ttry {\n\t\tconst data = await (await fetch(`${toValidLocationUrl(hostConfig)}/oauth/token`, {\n\t\t\tmethod: \"POST\",\n\t\t\tcredentials: \"include\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\tredirect: \"follow\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tgrant_type: \"authorization_code\",\n\t\t\t\tscope: hostConfig.scope || \"user_default\",\n\t\t\t\t...code ? { code } : {},\n\t\t\t\tredirect_uri: redirectUri || globalThis.location.href,\n\t\t\t\t...verifier ? { code_verifier: verifier } : {},\n\t\t\t\tclient_id: hostConfig.clientId\n\t\t\t})\n\t\t})).json();\n\t\thandlePossibleErrors(data);\n\t\treturn {\n\t\t\taccessToken: data.access_token,\n\t\t\trefreshToken: data.refresh_token,\n\t\t\terrors: data.errors\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\treturn new Promise(() => {});\n\t}\n}\nfunction createBodyWithCredentialsEtc(clientId, clientSecret, scope, subject, userId) {\n\tconst commonProps = {\n\t\tclient_id: clientId,\n\t\tclient_secret: clientSecret,\n\t\tscope\n\t};\n\tif (subject) return {\n\t\t...commonProps,\n\t\tgrant_type: \"urn:qlik:oauth:user-impersonation\",\n\t\tuser_lookup: {\n\t\t\tfield: \"subject\",\n\t\t\tvalue: subject\n\t\t}\n\t};\n\tif (userId) return {\n\t\t...commonProps,\n\t\tgrant_type: \"urn:qlik:oauth:user-impersonation\",\n\t\tuser_lookup: {\n\t\t\tfield: \"userId\",\n\t\t\tvalue: userId\n\t\t}\n\t};\n\treturn {\n\t\t...commonProps,\n\t\tgrant_type: \"client_credentials\"\n\t};\n}\nasync function getOauthTokensWithCredentials(baseUrl, clientId, clientSecret, scope = \"user_default\", subject, userId) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify(createBodyWithCredentialsEtc(clientId, clientSecret, scope, subject, userId))\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\nasync function getOauthTokensWithRefreshToken(baseUrl, refreshToken, clientSecret) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\tgrant_type: \"refresh_token\",\n\t\t\trefresh_token: refreshToken,\n\t\t\tclient_secret: clientSecret\n\t\t})\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\nasync function getAnonymousOauthAccessToken(baseUrl, accessCode, clientId, trackingCode) {\n\tconst data = await (await fetch(`${baseUrl}/oauth/token/anonymous-embed`, {\n\t\tmethod: \"POST\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\teac: accessCode,\n\t\t\tclient_id: clientId,\n\t\t\tgrant_type: \"urn:qlik:oauth:anonymous-embed\",\n\t\t\ttracking_code: trackingCode\n\t\t})\n\t})).json();\n\treturn {\n\t\taccessToken: data.access_token,\n\t\trefreshToken: data.refresh_token,\n\t\terrors: data.errors\n\t};\n}\n/**\n* Fetches the access token from storage or memory.\n* This code is intended to run in a node environment\n*/\nasync function getOAuthTokensForNode(hostConfig) {\n\tconst { clientId, clientSecret, performInteractiveLogin } = hostConfig;\n\tif (!clientId || !clientSecret && !performInteractiveLogin) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to provide a clientId and a clientSecret or a performInteractiveLogin function\");\n\treturn await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\tif (hostConfig.performInteractiveLogin) return getOauthTokensWithInteractiveLogin(hostConfig);\n\t\tif (!hostConfig.clientId || !hostConfig.clientSecret) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to provide a clientId and a clientSecret\");\n\t\treturn getOauthTokensWithCredentials(toValidLocationUrl(hostConfig), hostConfig.clientId, hostConfig.clientSecret, hostConfig.scope, hostConfig.subject, hostConfig.userId);\n\t});\n}\n/**\n* Fetches the access token from storage or memory. If no one is found a code and verifier is expected to be found in the sesion storage\n* This code is intended to run in a browser\n*/\nasync function getOAuthTokensForBrowser(hostConfig) {\n\tconst { clientId } = hostConfig;\n\tif (!clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"oauth2\\\" has to also provide a clientId\");\n\tconst oauthTokens = await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\tif (hostConfig.getAccessToken) try {\n\t\t\treturn {\n\t\t\t\taccessToken: typeof hostConfig.getAccessToken === \"string\" ? await lookupGetAccessFn(hostConfig.getAccessToken)() : await hostConfig.getAccessToken(),\n\t\t\t\trefreshToken: void 0,\n\t\t\t\terrors: void 0\n\t\t\t};\n\t\t} catch {\n\t\t\treturn errorMessageToAuthData(\"Could not fetch access token using custom function\");\n\t\t}\n\t\tif (hostConfig.performInteractiveLogin) return getOauthTokensWithInteractiveLogin(hostConfig);\n\t\tconst topic = getTopicFromOauthHostConfig(hostConfig);\n\t\tconst code = loadAndDeleteFromSessionStorage(topic, \"code\");\n\t\tconst verifier = loadAndDeleteFromSessionStorage(topic, \"verifier\");\n\t\tif (code && verifier) {\n\t\t\tconst tokenResponse = await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, hostConfig.redirectUri);\n\t\t\tif (tokenResponse) return tokenResponse;\n\t\t}\n\t});\n\tif (oauthTokens) return oauthTokens;\n\tif (hostConfig.performInteractiveLogin) return new Promise(() => {});\n\tawait requestRedirect(hostConfig);\n\tstartFullPageLoginFlow(hostConfig);\n\treturn new Promise(() => {});\n}\nasync function getOauthTokensWithInteractiveLogin(hostConfig) {\n\tif (!hostConfig.performInteractiveLogin) return errorMessageToAuthData(\"No performInteractiveLogin function in hostConfig\");\n\tlet usedRedirectUri;\n\ttry {\n\t\tconst verifier = generateRandomString(128);\n\t\tconst originalState = generateRandomString(43);\n\t\tconst { code, state } = extractCodeAndState(await toPerformInteractiveLoginFunction(hostConfig.performInteractiveLogin)({ getLoginUrl: async ({ redirectUri }) => {\n\t\t\tusedRedirectUri = redirectUri;\n\t\t\treturn createInteractiveLoginUrl(hostConfig, redirectUri, originalState, verifier);\n\t\t} }));\n\t\tif (!usedRedirectUri) return errorMessageToAuthData(\"No redirect uri provided\");\n\t\tif (originalState !== state) return errorMessageToAuthData(\"State returned by custom interactive login function does not match original\");\n\t\tif (!code) return errorMessageToAuthData(\"No code found in response from custom interactive login function\");\n\t\treturn await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, usedRedirectUri);\n\t} catch (error) {\n\t\treturn {\n\t\t\taccessToken: void 0,\n\t\t\trefreshToken: void 0,\n\t\t\terrors: [{\n\t\t\t\tcode: \"\",\n\t\t\t\tstatus: 401,\n\t\t\t\ttitle: \"Could not perform custom interactive login\",\n\t\t\t\tdetail: String(error)\n\t\t\t}]\n\t\t};\n\t}\n}\nlet lastOauthTokensCall = Promise.resolve(\"\");\nasync function getOAuthAccessToken(hostConfig) {\n\tif (isNode()) {\n\t\tconst tokens = await getOAuthTokensForNode(hostConfig);\n\t\tif (tokens) {\n\t\t\thandlePossibleErrors(tokens);\n\t\t\treturn tokens.accessToken || \"\";\n\t\t}\n\t\treturn \"\";\n\t}\n\tif (isBrowser()) lastOauthTokensCall = lastOauthTokensCall.then(async () => {\n\t\tconst tokens = await getOAuthTokensForBrowser(hostConfig);\n\t\tif (tokens) {\n\t\t\thandlePossibleErrors(tokens);\n\t\t\treturn tokens.accessToken || \"\";\n\t\t}\n\t\treturn \"\";\n\t});\n\treturn lastOauthTokensCall;\n}\nasync function refreshAccessToken(hostConfig) {\n\tconst tokens = await loadCachedOauthTokens(hostConfig);\n\tclearStoredOauthTokens(hostConfig);\n\tif (tokens && tokens.refreshToken && hostConfig.clientSecret) {\n\t\tconst refreshedTokens = await loadOrAcquireAccessTokenOauth(hostConfig, async () => {\n\t\t\tif (!tokens || !tokens.refreshToken || !hostConfig.clientSecret) throw new Error(\"Trying to refresh tokens without refreshToken or clientSecret\");\n\t\t\treturn getOauthTokensWithRefreshToken(toValidLocationUrl(hostConfig), tokens.refreshToken, hostConfig.clientSecret);\n\t\t});\n\t\tif (refreshedTokens) handlePossibleErrors(refreshedTokens);\n\t}\n}\nfunction extractCodeAndState(input) {\n\tif (typeof input === \"string\") {\n\t\tlet parsedUrl;\n\t\ttry {\n\t\t\tparsedUrl = new URL(input);\n\t\t} catch {\n\t\t\tparsedUrl = new URL(input, \"http://localhost\");\n\t\t}\n\t\tconst queryParams = new URLSearchParams(parsedUrl.search);\n\t\treturn {\n\t\t\tcode: queryParams.get(\"code\") || \"\",\n\t\t\tstate: queryParams.get(\"state\") || \"\"\n\t\t};\n\t}\n\treturn input;\n}\nfunction errorMessageToAuthData(message) {\n\treturn {\n\t\taccessToken: void 0,\n\t\trefreshToken: void 0,\n\t\terrors: [{\n\t\t\tcode: \"\",\n\t\t\tstatus: 401,\n\t\t\ttitle: message,\n\t\t\tdetail: \"\"\n\t\t}]\n\t};\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/temporary-token.ts\nasync function exchangeAccessTokenForTemporaryToken(hostConfig, accessToken, purpose) {\n\tconst response = await fetch(`${toValidLocationUrl(hostConfig)}/oauth/token`, {\n\t\tmethod: \"POST\",\n\t\tcredentials: \"include\",\n\t\tmode: \"cors\",\n\t\theaders: { \"content-type\": \"application/json\" },\n\t\tredirect: \"follow\",\n\t\tbody: JSON.stringify({\n\t\t\tsubject_token: accessToken,\n\t\t\tsubject_token_type: \"urn:ietf:params:oauth:token-type:access_token\",\n\t\t\tgrant_type: \"urn:ietf:params:oauth:grant-type:token-exchange\",\n\t\t\tpurpose,\n\t\t\tredirect_uri: globalThis.location?.href,\n\t\t\tclient_id: hostConfig.clientId\n\t\t})\n\t});\n\tif (response.status !== 200) throw await toError(response);\n\treturn (await response.json()).access_token;\n}\nasync function toError(response) {\n\tconst body = await response.text();\n\ttry {\n\t\treturn new AuthorizationError(JSON.parse(body).errors);\n\t} catch {\n\t\treturn new AuthorizationError([{\n\t\t\tcode: \"unknown\",\n\t\t\tstatus: response.status,\n\t\t\tdetail: body,\n\t\t\ttitle: \"Unknown authentication error\"\n\t\t}]);\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/anonymous.ts\n/**\n* Retries the passed in function after calling handleAuthenticationError\n*/\nasync function handlePotentialAuthenticationErrorAndRetry$1(hostConfig, fn) {\n\ttry {\n\t\treturn await fn();\n\t} catch (err) {\n\t\tconst { retry } = await handleAuthenticationError$10({\n\t\t\thostConfig,\n\t\t\tcanRetry: true\n\t\t});\n\t\tif (retry) return fn();\n\t\tthrow err;\n\t}\n}\nasync function getOrCreateTrackingCode(hostConfig) {\n\tlet trackingCode;\n\tif (isBrowser()) {\n\t\tconst topic = getTopicFromAnonHostConfig(hostConfig);\n\t\ttrackingCode = loadFromLocalStorage(topic, \"tracking-code\");\n\t\tif (!trackingCode) trackingCode = createTrackingCode();\n\t\tsaveInLocalStorage(topic, \"tracking-code\", trackingCode);\n\t} else trackingCode = createTrackingCode();\n\treturn trackingCode;\n}\nfunction createTrackingCode() {\n\tconst timeStamp = Math.floor(Date.now() / 1e3).toString(16);\n\treturn `${timeStamp}${generateRandomHexString(40 - timeStamp.length)}`;\n}\nasync function getAnonymousAccessToken(hostConfig) {\n\tconst { accessCode, clientId } = hostConfig;\n\tif (!accessCode || !clientId) throw new InvalidHostConfigError(\"A host config with authType set to \\\"anonymous\\\" has to provide both an accessCode and clientId\");\n\tconst tokens = await loadOrAcquireAccessTokenAnon(hostConfig, async () => {\n\t\tconst baseUrl = toValidLocationUrl(hostConfig);\n\t\tconst trackingCode = await getOrCreateTrackingCode(hostConfig);\n\t\treturn getAnonymousOauthAccessToken(baseUrl, accessCode, clientId, trackingCode);\n\t});\n\tif (!tokens) return \"\";\n\tif (tokens.errors) throw new AuthorizationError(tokens.errors);\n\tif (tokens.accessToken) return tokens.accessToken;\n\treturn \"\";\n}\nasync function getRestCallAuthParams$10({ hostConfig }) {\n\treturn {\n\t\theaders: { Authorization: `Bearer ${await getAnonymousAccessToken(hostConfig)}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t};\n}\nasync function getWebSocketAuthParams$10({ hostConfig }) {\n\tif (isNode()) return { headers: { Authorization: `Bearer ${await getAnonymousAccessToken(hostConfig)}` } };\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry$1(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getAnonymousAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function getWebResourceAuthParams$2({ hostConfig }) {\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry$1(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getAnonymousAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function handleAuthenticationError$10({ hostConfig }) {\n\tclearStoredAnonymousTokens(hostConfig);\n\treturn {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n}\nvar anonymous_default = {\n\trequiredProps: [\"clientId\", \"accessCode\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$10,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$10,\n\tgetWebResourceAuthParams: getWebResourceAuthParams$2,\n\thandleAuthenticationError: handleAuthenticationError$10\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/apikey.ts\nfunction getRestCallAuthParams$9({ hostConfig }) {\n\treturn Promise.resolve({\n\t\theaders: { Authorization: `Bearer ${hostConfig?.apiKey}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t});\n}\nasync function getWebSocketAuthParams$9({ hostConfig }) {\n\tif (isBrowser()) throw new Error(\"Not supported in browser environment\");\n\treturn Promise.resolve({ headers: { Authorization: `Bearer ${hostConfig?.apiKey}` } });\n}\nfunction handleAuthenticationError$9() {\n\treturn Promise.resolve({});\n}\nvar apikey_default = {\n\trequiredProps: [\"apiKey\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$9,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$9,\n\thandleAuthenticationError: handleAuthenticationError$9\n};\n\n//#endregion\n//#region src/invoke-fetch/invoke-fetch-errors.ts\n/**\n* Error thrown by the invokeFetch function\n*/\nvar InvokeFetchError = class extends Error {\n\tstatus;\n\theaders;\n\tdata;\n\tconstructor(errorMessage, status, headers, data) {\n\t\tsuper(errorMessage);\n\t\tthis.status = status;\n\t\tthis.headers = headers;\n\t\tthis.data = data;\n\t\tthis.stack = cleanStack(this.stack);\n\t}\n};\n/**\n* Error thrown if a request-body cannot be encoded.\n*/\nvar EncodingError = class extends Error {\n\tcontentType;\n\tdata;\n\tconstructor(errorMessage, contentType, data) {\n\t\tsuper(errorMessage);\n\t\tthis.contentType = contentType;\n\t\tthis.data = data;\n\t\tthis.stack = cleanStack(this.stack);\n\t}\n};\nconst regex = /^.+\\/qmfe-api(?:\\.js)?:(\\d+)(?::\\d+)?$/gim;\nconst isFromQmfeApi = (line) => {\n\tconst matches = line.match(regex);\n\treturn Boolean(matches && matches.length > 0);\n};\n/**\n* Function that removes stack entries that are from the qmfe-api module\n*/\nfunction cleanStack(stack) {\n\tif (!stack) return stack;\n\tconst newStack = [];\n\tconst lines = stack.split(\"\\n\");\n\tlines.reverse();\n\tfor (const line of lines) {\n\t\tif (isFromQmfeApi(line)) break;\n\t\tnewStack.unshift(line);\n\t}\n\treturn newStack.join(\"\\n\");\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-fetch-helpers.ts\n/**\n* Appends the specified query parameters (encoded) to the provided url.\n* @private\n*/\nfunction appendQueryToUrl(url, queryParams) {\n\tconst queryString = encodeQueryParams(queryParams);\n\tlet firstQueryDelim;\n\tif (url.indexOf(\"?\") === -1) firstQueryDelim = \"?\";\n\telse firstQueryDelim = \"&\";\n\treturn `${url}${firstQueryDelim}${queryString}`;\n}\n/**\n* Encode the query map into a query string\n* @private\n*/\nfunction encodeQueryParams(query) {\n\tif (!query) return \"\";\n\treturn Object.entries(query).map((kv) => {\n\t\tconst [, value] = kv;\n\t\tif (value === void 0) return;\n\t\treturn kv.map((val) => encodeURIComponent(decodeURIComponent(val))).join(\"=\");\n\t}).filter(Boolean).join(\"&\");\n}\n/**\n* Replaces the variable placeholders in the path template with the variable values\n* @param pathTemplate\n* @param pathVariables\n* @private\n*/\nfunction applyPathVariables(pathTemplate, pathVariables) {\n\tlet result = pathTemplate;\n\tif (pathVariables) Object.keys(pathVariables).forEach((key) => {\n\t\tresult = result.replace(`{${key}}`, pathVariables[key]);\n\t});\n\treturn result;\n}\n/**\n* Join url and query to a complete url\n* @private\n*/\nfunction toCompleteUrl(url, query) {\n\tif (query !== \"\") return `${url}?${query}`;\n\treturn url;\n}\n/**\n* Returns true if the status code is 301 or 302 or for ..../qps/csrftoken with 403 which really should be 401 on windows but isn't for historical reasons\n*/\nfunction means401OnWindows(completeUrl, statusCode) {\n\tconst url = new URL(completeUrl, \"http://dummy\");\n\tconst isQpsCsrfTokenUrl = url.pathname.endsWith(\"/qps/csrftoken\") && url.searchParams.has(\"xrfkey\");\n\treturn statusCode === 301 || statusCode === 302 || isQpsCsrfTokenUrl && statusCode === 403;\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-xhr.ts\nasync function invokeXHR(completeUrl, { method, headers, credentials, keepalive, body, signal, progress }) {\n\tconst xhr = new XMLHttpRequest();\n\tlet resolve;\n\tlet reject;\n\tconst promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\txhr.open(method || \"GET\", completeUrl);\n\tif (typeof headers === \"object\") for (const [key, value] of Object.entries(headers)) xhr.setRequestHeader(key, value);\n\telse throw Error(\"malformed headers\", headers);\n\tif (keepalive) xhr.setRequestHeader(\"Connection\", \"keep-alive\");\n\tif (signal) signal.addEventListener(\"abort\", () => {\n\t\txhr.abort();\n\t\treject();\n\t});\n\tif (credentials === \"include\") xhr.withCredentials = true;\n\telse xhr.withCredentials = false;\n\tif (progress?.onUpload) xhr.upload.onprogress = (event) => {\n\t\tconst { loaded, total, lengthComputable } = event;\n\t\tprogress.onUpload?.({\n\t\t\tloaded,\n\t\t\ttotal: lengthComputable ? total : void 0\n\t\t});\n\t};\n\tif (progress?.onDownload) xhr.onprogress = (event) => {\n\t\tconst { loaded, total, lengthComputable } = event;\n\t\tprogress.onDownload?.({\n\t\t\tloaded,\n\t\t\ttotal: lengthComputable ? total : void 0\n\t\t});\n\t};\n\txhr.onloadend = () => {\n\t\tconst { status } = xhr;\n\t\tconst responseHeaders = {};\n\t\tfor (const line of xhr.getAllResponseHeaders().split(\"\\r\\n\")) {\n\t\t\tconst [key, value] = line.split(\":\", 2);\n\t\t\tif (key && value) responseHeaders[key] = value;\n\t\t}\n\t\tif (xhr.response) resolve(new Response(xhr.response, {\n\t\t\tstatus,\n\t\t\theaders: responseHeaders\n\t\t}));\n\t\telse resolve(new Response(void 0, {\n\t\t\tstatus,\n\t\t\theaders: responseHeaders\n\t\t}));\n\t};\n\ttry {\n\t\tconst bod = body;\n\t\txhr.send(bod);\n\t} catch (e) {\n\t\treturn Promise.reject(new InvokeFetchError(getErrorMessage(e), 0, new Headers(), {}));\n\t}\n\treturn promise;\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/response-cache.ts\nconst responseCaches = {};\nglobalThis.__API_CACHE__DO_NOT_USE_OR_YOU_WILL_BE_FIRED = responseCaches;\nif (globalThis.QlikMain?.INTERNAL__DO_NOT_USE) globalThis.QlikMain.INTERNAL__DO_NOT_USE.apiCache = responseCaches;\nlet defaultCacheTime = 1e3 * 60 * 10;\n/**\n* The global namespace is used as a fallback if an entry is not found in a specific cache.\n* This cache can be used internally, specifically by BFF interceptors,\n* where we cannot reliably map a response to an API-module.\n*/\nconst globalCacheNamespace = \".global\";\n/**\n* Gets a cached response-promise from the specified API-namespace (or global cache).\n* A promise is returned if options.noCache is not true, the promise exists and is not too\n* old (based on defaults and cache-options).\n*\n* @param api The cache-namespace of the API.\n* @param props CachingContext\n* @returns The cached response (cloned and ready to use) or undefined.\n*/\nfunction getFromCache(api, props) {\n\tif (isForbiddenApiName(api)) throw new Error(`Forbidden api name: ${api}`);\n\tif (props?.options?.noCache) return;\n\tconst { method, completeUrl, cacheKey } = props;\n\tconst caches = getPossibleCaches(api);\n\tif (isModifyingOperation(method, completeUrl)) return;\n\tlet entry;\n\tfor (const cache of caches) if (cacheKey in cache) {\n\t\tentry = cache[cacheKey];\n\t\tif (entry && typeof entry.value !== \"undefined\" && shouldUseCachedResult(props?.options, entry, defaultCacheTime)) break;\n\t\tentry = void 0;\n\t}\n\tif (!entry) return;\n\tentry.lastHit = /* @__PURE__ */ new Date();\n\tentry.hitCount += 1;\n\tentry.accessedPaths.add(globalThis.location ? globalThis.location.pathname : \"node\");\n\tconst value = entry.value;\n\treturn cloneResultPromise(value);\n}\n/**\n* Updates the cache of 'api' with the response-promise based on the caching-context.\n* If the promise comes from a modifying operation, related cache entries will be removed.\n* The returned promise is either the original promise (if it isn't cached) or a\n* cloned promise that is safe to use.\n*\n* Note: The original response-promise should not be reused directly, use the returned\n* equivalent instead.\n*\n* @private\n* @param api The cache-namespace of the API.\n* @param props CachingContext\n* @param responsePromise Promise<InvokeFetchResponse>, the thing to cache\n* @returns\n*/\nfunction updateCache(api, props, responsePromise) {\n\tif (isForbiddenApiName(api)) throw new Error(`Forbidden api name: ${api}`);\n\tif (!responseCaches[api]) responseCaches[api] = {};\n\tconst { cacheKey } = props;\n\tif (isModifyingOperation(props.method, props.completeUrl)) return responsePromise.then((res) => {\n\t\tconst caches = getPossibleCaches(api);\n\t\tfor (const cache of caches) clearRelatedCacheEntries(cache, cacheKey);\n\t\treturn res;\n\t});\n\tconst cacheNamespace = responseCaches[api];\n\tconst responsePromiseWithCacheClearing = responsePromise.catch((error) => {\n\t\tdelete cacheNamespace[cacheKey];\n\t\treturn Promise.reject(error);\n\t});\n\tcacheNamespace[cacheKey] = {\n\t\tlastPulled: Date.now(),\n\t\tvalue: responsePromiseWithCacheClearing,\n\t\tlastHit: null,\n\t\thitCount: 0,\n\t\taccessedPaths: /* @__PURE__ */ new Set()\n\t};\n\treturn cloneResultPromise(responsePromiseWithCacheClearing);\n}\n/**\n* Returns true if it is ok the to use the cached promise from a previous invocation\n* @private\n*/\nfunction shouldUseCachedResult(options, cacheEntry, defaultMaxCacheTime) {\n\tif (options?.noCache) return false;\n\tif (!cacheEntry || typeof cacheEntry.value === \"undefined\") return false;\n\tif (options?.useCacheIfAfter) return options.useCacheIfAfter.getTime() <= cacheEntry.lastPulled;\n\tconst age = Date.now() - cacheEntry.lastPulled;\n\tif (typeof options?.maxCacheAge === \"number\") return age <= options?.maxCacheAge;\n\treturn age < defaultMaxCacheTime;\n}\n/**\n* Builds a key used for caching based on a CachingContext\n* @private\n* @param cachingContext\n* @returns a key used for caching\n*/\nfunction toCacheKey({ url, query, headers, serializedHostConfig }) {\n\tlet cacheKey = url;\n\tif (query && Object.keys(query).length > 0) {\n\t\tconst queryString = encodeQueryParams(query);\n\t\tif (url.includes(\"?\")) cacheKey = cacheKey.concat(`&${queryString}`);\n\t\telse cacheKey = cacheKey.concat(`?${queryString}`);\n\t}\n\tif (headers && Object.keys(headers).length > 0) cacheKey = cacheKey.concat(`+headers=${JSON.stringify(headers)}`);\n\tif (serializedHostConfig && serializedHostConfig !== \"{}\") cacheKey = cacheKey.concat(`+host-config=${serializedHostConfig}`);\n\treturn cacheKey;\n}\n/**\n* Convenience function for getting a list of caches that are OK to use\n* in the context of an API-namespace.\n* @param api\n* @returns\n*/\nfunction getPossibleCaches(api) {\n\tconst caches = [];\n\tif (responseCaches[api]) caches.push(responseCaches[api]);\n\tif (responseCaches[\".global\"]) caches.push(responseCaches[globalCacheNamespace]);\n\treturn caches;\n}\n/**\n* @private\n* Clears all cache entries where the modifying URL starts with the cached URL\n* @param cache\n* @param cacheKey\n*/\nfunction clearRelatedCacheEntries(cache, cacheKey) {\n\tconst modifyingUrl = cacheKeyToUrl(cacheKey);\n\tfor (const existingCacheKey in cache) {\n\t\tconst cleanUrl = cacheKeyToUrl(existingCacheKey);\n\t\tif (modifyingUrl.startsWith(cleanUrl) || cleanUrl.startsWith(modifyingUrl)) delete cache[existingCacheKey];\n\t}\n}\n/**\n* Removes query, headers and host-config from the cache key to get a clean URL.\n*/\nfunction cacheKeyToUrl(cachedUrl) {\n\tconst queryIdx = cachedUrl.indexOf(\"?\");\n\tif (queryIdx >= 0) return cachedUrl.substring(0, queryIdx);\n\tconst headersIdx = cachedUrl.indexOf(\"+headers=\");\n\tif (headersIdx >= 0) return cachedUrl.substring(0, headersIdx);\n\tconst hostConfigIdx = cachedUrl.indexOf(\"+host-config=\");\n\tif (hostConfigIdx >= 0) return cachedUrl.substring(0, hostConfigIdx);\n\treturn cachedUrl;\n}\n/**\n* Clone mutable-objects using JSON.stringify.\n* Strings, Blobs and ReadableStreams are not cloned.\n* @private\n*/\nfunction clone(value) {\n\tif (typeof value === \"undefined\" || value === null) return value;\n\tif (value && (value instanceof Blob || value instanceof Object && value.toString() === \"[object Blob]\")) return value;\n\tif (value && value instanceof ReadableStream) return value;\n\tif (typeof value === \"string\") return value;\n\treturn JSON.parse(JSON.stringify(value));\n}\n/**\n* Clones the result so that no one can tamper with the cache. Note that the headers object is NOT cloned\n* @private\n*/\nfunction cloneResultPromise(value) {\n\treturn value.then((resp) => {\n\t\tconst result = {\n\t\t\tdata: clone(resp.data),\n\t\t\theaders: resp.headers,\n\t\t\tstatus: resp.status\n\t\t};\n\t\tif (resp.next) result.next = resp.next;\n\t\tif (resp.prev) result.prev = resp.prev;\n\t\treturn result;\n\t});\n}\n/**\n* Clears cached responses\n* @param api the api to clear cache in\n*/\nfunction clearApiCacheInternal(api) {\n\tresponseCaches[api] = {};\n}\n/**\n* Returns true if the method might modify things requiring caches to be cleared\n*/\nfunction isModifyingOperation(method, url) {\n\tif (method === \"get\" || method === \"GET\") return false;\n\tif (url.endsWith(\"/api/v1/licenses/allotments\") && (method === \"post\" || method === \"POST\")) return false;\n\treturn true;\n}\nfunction isForbiddenApiName(api) {\n\treturn api === \"__proto__\";\n}\n\n//#endregion\n//#region src/invoke-fetch/internal/invoke-fetch-methods.ts\nfunction getErrorMessage(error) {\n\tif (error instanceof Error) {\n\t\tif (error.cause) {\n\t\t\tif (error.message) return `${error.message} - ${getErrorMessage(error.cause)}`;\n\t\t\treturn getErrorMessage(error.cause);\n\t\t}\n\t\treturn error.message;\n\t}\n\treturn String(error);\n}\nasync function fetchAndTransformExceptions(input, init) {\n\ttry {\n\t\treturn await fetch(input, init);\n\t} catch (e) {\n\t\treturn Promise.reject(new InvokeFetchError(getErrorMessage(e), 0, new Headers(), {}));\n\t}\n}\nasync function performActualHttpFetch(method, completeUrl, unencodedBody, contentType, options, authHeaders, credentials, userAgent) {\n\tconst { body, contentTypeHeader, requestOptions } = encodeBody(unencodedBody, contentType ?? \"\");\n\tconst headers = {\n\t\t...contentTypeHeader,\n\t\t...authHeaders,\n\t\t...options?.headers,\n\t\t...getServiceOverrideHeaderFromLocalStorage()\n\t};\n\tif (!headers[\"User-Agent\"] && userAgent) headers[\"User-Agent\"] = userAgent;\n\tconst request = {\n\t\tmethod,\n\t\tcredentials,\n\t\tmode: \"cors\",\n\t\theaders,\n\t\tredirect: await isWindows(options?.hostConfig) ? \"manual\" : \"follow\",\n\t\tkeepalive: options?.keepalive,\n\t\tprogress: options?.progress,\n\t\tbody,\n\t\t...requestOptions\n\t};\n\tlet fetchTimeoutId;\n\tif (options?.signal) request.signal = options.signal;\n\telse if (options?.timeoutMs && options.timeoutMs > 0) {\n\t\tconst controller = new AbortController();\n\t\tfetchTimeoutId = setTimeout(() => {\n\t\t\tcontroller.abort();\n\t\t}, options.timeoutMs);\n\t\trequest.signal = controller.signal;\n\t}\n\tlet response;\n\tif (options?.progress) response = await invokeXHR(completeUrl, request);\n\telse response = await fetchAndTransformExceptions(completeUrl, request);\n\tif (fetchTimeoutId) clearTimeout(fetchTimeoutId);\n\treturn await parseFetchResponse(response, completeUrl);\n}\nfunction encodeBody(unencodedBody, contentType) {\n\tif (!unencodedBody) return {\n\t\tbody: null,\n\t\tcontentTypeHeader: {},\n\t\trequestOptions: {}\n\t};\n\tconst contentTypeHeader = {};\n\tconst requestOptions = {};\n\tlet body;\n\tswitch (contentType) {\n\t\tcase \"\":\n\t\tcase \"application/json\":\n\t\t\tcontentTypeHeader[\"Content-Type\"] = \"application/json\";\n\t\t\tbody = JSON.stringify(unencodedBody);\n\t\t\tbreak;\n\t\tcase \"multipart/form-data\":\n\t\t\tbody = encodeMultipartBody(unencodedBody);\n\t\t\tbreak;\n\t\tcase \"application/octet-stream\":\n\t\t\tcontentTypeHeader[\"Content-Type\"] = contentType;\n\t\t\trequestOptions[\"duplex\"] = \"half\";\n\t\t\tbody = unencodedBody;\n\t\t\tbreak;\n\t\tcase \"text/plain\":\n\t\t\tif (typeof unencodedBody === \"string\") {\n\t\t\t\tcontentTypeHeader[\"Content-Type\"] = contentType;\n\t\t\t\tbody = unencodedBody;\n\t\t\t} else throw new EncodingError(`Cannot send ${typeof unencodedBody} as ${contentType}, body should be a string.`, contentType, unencodedBody);\n\t\t\tbreak;\n\t\tdefault: throw new EncodingError(`Unsupported content-type \"${contentType}\", supported are: application/json, multipart/form-data, application/octet-stream and text/plain`, contentType, unencodedBody);\n\t}\n\treturn {\n\t\tbody,\n\t\tcontentTypeHeader,\n\t\trequestOptions\n\t};\n}\nfunction encodeMultipartBody(unencodedBody) {\n\tconst contentType = \"multipart/form-data\";\n\tif (typeof unencodedBody !== \"object\") throw new EncodingError(`Cannot encode ${typeof unencodedBody} as ${contentType}, body should be an object.`, contentType, unencodedBody);\n\tif (Array.isArray(unencodedBody)) throw new EncodingError(`Cannot encode ${typeof unencodedBody} as ${contentType}, body should be an object.`, contentType, unencodedBody);\n\tif (unencodedBody instanceof FormData) return unencodedBody;\n\tconst form = new FormData();\n\tObject.entries(unencodedBody).forEach((entry) => {\n\t\tconst [key, value] = entry;\n\t\tswitch (typeof value) {\n\t\t\tcase \"boolean\":\n\t\t\tcase \"number\":\n\t\t\tcase \"string\":\n\t\t\t\tform.set(key, `${value}`);\n\t\t\t\tbreak;\n\t\t\tcase \"object\":\n\t\t\t\tif (value instanceof Blob) form.set(key, value);\n\t\t\t\telse if (value instanceof Uint8Array) {\n\t\t\t\t\tconst data = new Blob([value], { type: \"application/octet-stream\" });\n\t\t\t\t\tform.set(key, data);\n\t\t\t\t} else {\n\t\t\t\t\tconst json = JSON.stringify(value);\n\t\t\t\t\tconst data = new Blob([json], { type: \"application/json\" });\n\t\t\t\t\tform.set(key, data, \"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault: throw new EncodingError(`Cannot encode multipart-field \"${key}\" with value of type ${typeof value}, values must be objects, strings, numbers or boolean.`, contentType, unencodedBody);\n\t\t}\n\t});\n\treturn form;\n}\nasync function getInvokeFetchUrlParams({ method, pathTemplate, pathVariables, query, options }) {\n\tconst locationUrl = toValidLocationUrl(options?.hostConfig);\n\tconst { headers: authHeaders, queryParams: authQueryParams, credentials } = await getRestCallAuthParams({\n\t\thostConfig: options?.hostConfig,\n\t\tmethod\n\t});\n\tconst url = locationUrl + applyPathVariables(pathTemplate, pathVariables);\n\tconst completeUrl = toCompleteUrl(url, encodeQueryParams({\n\t\t...query,\n\t\t...authQueryParams\n\t}));\n\tconst serializedHostConfig = serializeHostConfig(options?.hostConfig);\n\treturn {\n\t\tcompleteUrl,\n\t\tauthHeaders,\n\t\tcredentials,\n\t\tcacheKey: toCacheKey({\n\t\t\turl,\n\t\t\tquery,\n\t\t\theaders: options?.headers,\n\t\t\tserializedHostConfig\n\t\t})\n\t};\n}\nfunction invokeFetchWithUrl(api, props) {\n\treturn invokeFetchWithUrlAndRetry(api, props, async () => {\n\t\tconst { authHeaders, credentials } = await getInvokeFetchUrlParams(props);\n\t\treturn invokeFetchWithUrlAndRetry(api, {\n\t\t\t...props,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\toptions: {\n\t\t\t\t...props.options,\n\t\t\t\tnoCache: true\n\t\t\t}\n\t\t}, void 0);\n\t});\n}\nfunction invokeFetchWithUrlAndRetry(api, props, performRetry) {\n\tconst { method, completeUrl, body, options, authHeaders, credentials, cacheKey, contentType, userAgent } = props;\n\tconst cachingContext = {\n\t\tmethod,\n\t\tcompleteUrl,\n\t\tcacheKey,\n\t\toptions\n\t};\n\tconst cachedResponse = getFromCache(api, cachingContext);\n\tif (cachedResponse) return cachedResponse;\n\tconst resultPromiseFromBackend = performActualHttpFetch(method, completeUrl, body, contentType, options, authHeaders, credentials, userAgent);\n\tconst resultAfterAuthenticationCheck = interceptAuthenticationErrors(options?.hostConfig, completeUrl, resultPromiseFromBackend, performRetry);\n\treturn updateCache(api, cachingContext, addPagingFunctions(api, {\n\t\t...props,\n\t\tvalue: resultAfterAuthenticationCheck\n\t}));\n}\n/**\n* Adds paging functions to the response object if there are paging links present in the response body\n*/\nfunction addPagingFunctions(api, { method, body, options, authHeaders, credentials, value }) {\n\treturn value.then((resp) => {\n\t\tconst dataWithPotentialLinks = resp.data;\n\t\tif (!dataWithPotentialLinks) return resp;\n\t\tconst serializedHostConfig = serializeHostConfig(options?.hostConfig);\n\t\tconst prevUrl = dataWithPotentialLinks.links?.prev?.href;\n\t\tconst nextUrl = dataWithPotentialLinks.links?.next?.href;\n\t\tif (prevUrl) resp.prev = (prevOptions) => invokeFetchWithUrl(api, {\n\t\t\tmethod,\n\t\t\tcompleteUrl: prevUrl,\n\t\t\tbody,\n\t\t\toptions: prevOptions || options,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\tcacheKey: toCacheKey({\n\t\t\t\turl: prevUrl,\n\t\t\t\theaders: options?.headers,\n\t\t\t\tserializedHostConfig\n\t\t\t})\n\t\t});\n\t\tif (nextUrl) resp.next = (nextOptions) => invokeFetchWithUrl(api, {\n\t\t\tmethod,\n\t\t\tcompleteUrl: nextUrl,\n\t\t\tbody,\n\t\t\toptions: nextOptions || options,\n\t\t\tauthHeaders,\n\t\t\tcredentials,\n\t\t\tcacheKey: toCacheKey({\n\t\t\t\turl: nextUrl,\n\t\t\t\theaders: options?.headers,\n\t\t\t\tserializedHostConfig\n\t\t\t})\n\t\t});\n\t\treturn resp;\n\t});\n}\nfunction neverResolvingPromise() {\n\treturn new Promise(() => {});\n}\nasync function interceptAuthenticationErrors(hostConfig, completeUrl, resultPromise, performRetry) {\n\ttry {\n\t\treturn await resultPromise;\n\t} catch (error) {\n\t\tconst err = error;\n\t\tconst errorBody = err.data;\n\t\tif (err.status === 401 || err.status === 403 && errorBody?.code === \"CSRF-TOKEN-2\" || means401OnWindows(completeUrl, err.status) && await isWindows(hostConfig)) {\n\t\t\tif (globalThis.loggingOut) return neverResolvingPromise();\n\t\t\tconst { retry, preventDefault } = await handleAuthenticationError({\n\t\t\t\thostConfig,\n\t\t\t\tstatus: err.status,\n\t\t\t\theaders: err.headers,\n\t\t\t\terrorBody,\n\t\t\t\tcanRetry: !!performRetry\n\t\t\t});\n\t\t\tif (retry && performRetry) return performRetry();\n\t\t\tif (preventDefault) return neverResolvingPromise();\n\t\t}\n\t\tthrow error;\n\t}\n}\n/** Set the X-Qlik-Overrides header according to what's written to localStorage\n* by qmfe-devtool */\nfunction getServiceOverrideHeaderFromLocalStorage() {\n\tif (!isBrowser()) return {};\n\tconst header = localStorage.getItem(\"qmfe-api-service-overrides-header\");\n\tif (!header) return {};\n\treturn { \"X-Qlik-Overrides\": header };\n}\n/** Convert a Blob to a DownloadableBlob */\nfunction toDownloadableBlob(blob, name) {\n\tconst result = blob;\n\tif (name) result.download = (filename) => download(blob, filename ?? name);\n\telse result.download = (filename) => download(blob, filename);\n\treturn result;\n}\n/** Convenience-function for downloading a blob. */\nasync function download(blob, filename) {\n\tif (isBrowser()) {\n\t\tconst a = document.createElement(\"a\");\n\t\tconst blobUrl = window.URL.createObjectURL(blob);\n\t\ta.href = blobUrl;\n\t\ta.download = filename;\n\t\ta.click();\n\t\twindow.URL.revokeObjectURL(blobUrl);\n\t} else {\n\t\tconst { writeFileSync } = await import(\"fs\");\n\t\tconst arrayBuffer = await blob.arrayBuffer();\n\t\twriteFileSync(filename, new Uint8Array(arrayBuffer));\n\t}\n}\n\n//#endregion\n//#region src/invoke-fetch/invoke-fetch-functions.ts\nconst defaultUserAgent = \"qmfe-api/latest\";\n/**\n* Makes an HTTP call with the browser's fetch API to the endpoint configured in the call's arguments\n* @param api Name of api to call. Will be used for caching responses.\n* @param invokeFetchProps InvokeFetchProperties\n*/\nasync function invokeFetch(api, props, interceptors) {\n\tconst effectiveInterceptors = interceptors || getInterceptors();\n\tconst invokeFetchFinal = (reqeust) => invokeFetchIntercepted(api, reqeust);\n\treturn (effectiveInterceptors || []).reduce((proceed, interceptor) => (request) => interceptor(request, proceed), invokeFetchFinal)(props);\n}\n/** @private Runs the intercepted version of invoke fetch */\nasync function invokeFetchIntercepted(api, props) {\n\tif (props.options?.hostConfig?.authType === \"mock-backend-rest-recorder\") return Promise.resolve(props.options?.hostConfig.recordInvokeFetch(props));\n\tif (props.options?.hostConfig?.authType === \"mock-backend\") return Promise.resolve(props.options?.hostConfig.mockInvokeFetch(props));\n\tcheckForCrossDomainRequest(props.options?.hostConfig);\n\tif (props.options?.hostConfig?.authType === \"noauth\") {\n\t\tconsole.info(\"API call blocked: noauth auth module is configured, no API calls should be made\");\n\t\treturn {\n\t\t\tstatus: 204,\n\t\t\theaders: new Headers(),\n\t\t\tdata: null\n\t\t};\n\t}\n\tlet userAgent;\n\tif (props?.userAgent) userAgent = props.userAgent;\n\telse if (isBrowser()) userAgent = `${window.navigator.userAgent} ${defaultUserAgent}`;\n\telse userAgent = defaultUserAgent;\n\tconst { completeUrl, authHeaders, credentials, cacheKey } = await getInvokeFetchUrlParams(props);\n\treturn invokeFetchWithUrl(api, {\n\t\t...props,\n\t\tmethod: props.method.toUpperCase(),\n\t\tcompleteUrl,\n\t\tauthHeaders,\n\t\tcredentials,\n\t\tcacheKey,\n\t\tuserAgent\n\t});\n}\n/**\n* Clears cached responses for a certain api\n* @example\n* clearNameSpaceCache(\"spaces\"); // clears the cache for the \"spaces\" api\n* @param api the api namespace to clear cache in\n*/\nfunction clearApiCache(api) {\n\tclearApiCacheInternal(api);\n}\n/**\n* Function that extracts the payload from the fetch response.\n* @param fetchResponse fetch response\n* @param url to where the request as made\n* @returns parsed fetch response\n*/\nasync function parseFetchResponse(fetchResponse, url) {\n\tlet resultData;\n\tconst contentType = fetchResponse.headers.get(\"content-type\")?.split(\";\")[0];\n\tconst contentDisposition = fetchResponse.headers.get(\"content-disposition\")?.split(\";\");\n\tif (contentDisposition && contentDisposition[0] === \"attachment\") {\n\t\tlet filename = \"\";\n\t\tfor (let i = 1; i < contentDisposition.length; i++) {\n\t\t\tconst attr = contentDisposition[i].trim();\n\t\t\tif (attr.indexOf(\"filename\") === 0) {\n\t\t\t\tconst start = attr.indexOf(\"\\\"\");\n\t\t\t\tconst end = attr.lastIndexOf(\"\\\"\");\n\t\t\t\tfilename = attr.slice(start + 1, end);\n\t\t\t}\n\t\t}\n\t\tresultData = toDownloadableBlob(await fetchResponse.blob(), filename);\n\t} else switch (contentType) {\n\t\tcase \"image/png\":\n\t\tcase \"image/jpeg\":\n\t\tcase \"image/x-icon\":\n\t\tcase \"application/offset+octet-stream\":\n\t\tcase \"application/octet-stream\":\n\t\tcase \"application/zip\":\n\t\tcase \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n\t\tcase \"application/pdf\":\n\t\t\tresultData = toDownloadableBlob(await fetchResponse.blob());\n\t\t\tbreak;\n\t\tcase \"text/event-stream\":\n\t\t\tresultData = fetchResponse.body;\n\t\t\tbreak;\n\t\tcase void 0:\n\t\tdefault: {\n\t\t\tlet bodyText;\n\t\t\ttry {\n\t\t\t\tbodyText = await fetchResponse.text();\n\t\t\t} catch (error) {\n\t\t\t\tthrow new InvokeFetchError(`request to '${url}' failed while reading response body: ${error instanceof Error ? error.message : String(error)}`, fetchResponse.status, fetchResponse.headers, void 0);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tresultData = JSON.parse(bodyText);\n\t\t\t} catch {\n\t\t\t\tresultData = bodyText;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst { status, statusText, headers } = fetchResponse;\n\tconst errorMsg = `request to '${url}' failed with status ${status} ${statusText}.`;\n\tif (status >= 300) throw new InvokeFetchError(errorMsg, status, headers, resultData);\n\tif (status === 0) throw new InvokeFetchError(errorMsg, 302, headers, resultData);\n\treturn {\n\t\tstatus,\n\t\theaders,\n\t\tdata: resultData\n\t};\n}\n\n//#endregion\n//#region src/http/http-constants.ts\n/**\n* Name of the CSRF Token header.\n*/\nconst QLIK_CSRF_TOKEN = \"qlik-csrf-token\";\n\n//#endregion\n//#region src/http/http-functions.ts\n/**\n* Clears the CSRF token\n* @param location an optional location that is used to clear the csrf tokens when embedded\n*/\nfunction clearCsrfToken(hostConfig) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tdelete csrfTokens[locationUrl];\n\tclearApiCache(\"csrf-token\");\n}\n/**\n* Fetches the CSRF token from the server. The token is cached and will be reused for subsequent calls.\n* @param hostConfig HostConfig object containing the location url and authentication options\n* @param noCache Set to true to force a new token to be fetched\n* @returns csrf token\n*/\nasync function getCsrfToken(hostConfig, noCache) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tlet pathTemplate;\n\tif (await isWindows(hostConfig)) pathTemplate = \"/qps/csrftoken\";\n\telse pathTemplate = \"/api/v1/csrf-token\";\n\tconst fetchCsrfToken = async () => {\n\t\ttry {\n\t\t\tconst csrfToken = (await invokeFetch(\"csrf-token\", {\n\t\t\t\tmethod: \"get\",\n\t\t\t\tpathTemplate,\n\t\t\t\toptions: {\n\t\t\t\t\thostConfig,\n\t\t\t\t\tmaxCacheAge: 5e3,\n\t\t\t\t\tnoCache\n\t\t\t\t}\n\t\t\t})).headers.get(QLIK_CSRF_TOKEN);\n\t\t\tif (!csrfToken) return \"\";\n\t\t\treturn csrfToken;\n\t\t} catch (e) {\n\t\t\tif (e.status === 404) return \"\";\n\t\t\tthrow e;\n\t\t}\n\t};\n\tif (noCache) {\n\t\tcsrfTokens[locationUrl] = fetchCsrfToken();\n\t\treturn csrfTokens[locationUrl];\n\t}\n\tcsrfTokens[locationUrl] = csrfTokens[locationUrl] || fetchCsrfToken();\n\treturn csrfTokens[locationUrl];\n}\nconst csrfTokens = {};\n\n//#endregion\n//#region src/auth/internal/internal-auth-functions.ts\n/**\n* Returns the fetch credentials string based on the host config. Note that this\n* assumes cookies are used so it should only be used by the cookie auth modes\n* @param hostConfig the HostConfig containing authentication details\n* @private\n*/\nfunction internalGetCredentialsForCookieAuth(hostConfig) {\n\tif (hostConfig.crossSiteCookies === false) return \"same-origin\";\n\tif (isHostCrossOrigin(hostConfig)) return \"include\";\n\treturn \"same-origin\";\n}\nasync function resolveTokenIfPresent(getAccessToken) {\n\tif (typeof getAccessToken === \"function\") return getAccessToken();\n\tif (typeof getAccessToken === \"string\") {\n\t\tconst accessTokenFn = lookupGlobalGetAccessTokenFn(getAccessToken);\n\t\tif (typeof accessTokenFn !== \"function\") throw new Error(`getAccessToken function \"${getAccessToken}\" not found on globalThis. Please make sure it is defined.`);\n\t\treturn accessTokenFn();\n\t}\n}\nfunction lookupGlobalGetAccessTokenFn(getAccessToken) {\n\treturn globalThis[getAccessToken];\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/cookie.ts\n/**\n* Returns true if the verb might modify things requiring caches to be cleared\n*/\nfunction isModifyingVerb(verb) {\n\treturn !(verb === \"get\" || verb === \"GET\");\n}\nasync function getRestCallAuthParams$8({ hostConfig, method }) {\n\tconst headers = {};\n\tif (isModifyingVerb(method)) headers[\"qlik-csrf-token\"] = await getCsrfToken(hostConfig);\n\tif (hostConfig.webIntegrationId) headers[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\treturn {\n\t\theaders,\n\t\tqueryParams: {},\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$8({ hostConfig }) {\n\tif (isNode()) {\n\t\tconst headers = {};\n\t\theaders[\"qlik-csrf-token\"] = await getCsrfToken(hostConfig);\n\t\tif (hostConfig.webIntegrationId) headers[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\t\treturn { headers };\n\t}\n\tconst params = { \"qlik-csrf-token\": await getCsrfToken(hostConfig, true) };\n\tif (hostConfig.webIntegrationId) params[\"qlik-web-integration-id\"] = hostConfig.webIntegrationId;\n\treturn { queryParams: params };\n}\nasync function handleAuthenticationError$8({ hostConfig, status }) {\n\tclearCsrfToken(hostConfig);\n\tif (status === 403) return {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n\tconst webIntegrationParam = hostConfig.webIntegrationId ? `qlik-web-integration-id=${hostConfig?.webIntegrationId}&` : \"\";\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\tawait requestRedirect(hostConfig);\n\tglobalThis.location.replace(`${locationUrl}/login?${webIntegrationParam}returnto=${encodeURIComponent(globalThis.location.href)}`);\n\treturn { preventDefault: true };\n}\n/** @private */\nvar cookie_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"webIntegrationId\",\n\t\t\"crossSiteCookies\",\n\t\t\"anonymousMode\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$8,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$8,\n\thandleAuthenticationError: handleAuthenticationError$8\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/noauth.ts\nfunction getRestCallAuthParams$7(_props) {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"same-origin\"\n\t});\n}\nfunction getWebSocketAuthParams$7(_props) {\n\treturn Promise.resolve({ queryParams: {} });\n}\nfunction handleAuthenticationError$7(_props) {\n\treturn Promise.resolve({});\n}\n/** @private */\nvar noauth_default = {\n\trequiredProps: [],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$7,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$7,\n\thandleAuthenticationError: handleAuthenticationError$7\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/none.ts\nfunction getRestCallAuthParams$6() {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"same-origin\"\n\t});\n}\nfunction getWebSocketAuthParams$6() {\n\treturn Promise.resolve({ queryParams: {} });\n}\nfunction handleAuthenticationError$6() {\n\treturn Promise.resolve({});\n}\n/** @private */\nvar none_default = {\n\trequiredProps: [],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$6,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$6,\n\thandleAuthenticationError: handleAuthenticationError$6\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth/callback.ts\n/**\n* Receives the oauth code and state callback query parameters,\n* verifies the state, saves the code in session storage, and then\n* redirects the page to the final href if it is set and differes from current uri\n*/\nfunction handleOAuthCallback() {\n\tconst urlParams = new URLSearchParams(globalThis.location.search);\n\tconst callbackCode = urlParams.get(\"code\") || void 0;\n\tconst callbackState = urlParams.get(\"state\") || void 0;\n\tif (urlParams.get(\"error\")) {\n\t\tconst element = document.createElement(\"pre\");\n\t\telement.innerText = `<code>${JSON.stringify({\n\t\t\terror: urlParams.get(\"error\"),\n\t\t\terror_code: urlParams.get(\"error_code\"),\n\t\t\terror_description: urlParams.get(\"error_description\"),\n\t\t\terror_detail: urlParams.get(\"error_detail\"),\n\t\t\terror_uri: urlParams.get(\"error_uri\")\n\t\t})}</code>`;\n\t\tdocument.body.prepend(element);\n\t}\n\tconst topic = loadAndDeleteFromSessionStorage(\"\", \"client-in-progress\");\n\tif (topic && callbackCode && callbackState) {\n\t\tconst stateFromLocalStorage = loadAndDeleteFromSessionStorage(topic, \"state\");\n\t\tconst finalRedirectUri = loadAndDeleteFromSessionStorage(topic, \"href\");\n\t\tif (stateFromLocalStorage && stateFromLocalStorage === callbackState && finalRedirectUri) {\n\t\t\tsaveInSessionStorage(topic, \"code\", callbackCode);\n\t\t\tif (finalRedirectUri !== globalThis.location.href) globalThis.location.replace(finalRedirectUri);\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/oauth.ts\nif (isBrowser()) handleOAuthCallback();\n/**\n* Retries the passed in function after calling handleAuthenticationError\n*/\nasync function handlePotentialAuthenticationErrorAndRetry(hostConfig, fn) {\n\ttry {\n\t\treturn await fn();\n\t} catch (err) {\n\t\tconst { retry } = await handleAuthenticationError$5({\n\t\t\thostConfig,\n\t\t\tcanRetry: true\n\t\t});\n\t\tif (retry) return fn();\n\t\tthrow err;\n\t}\n}\nasync function getRestCallAuthParams$5({ hostConfig }) {\n\treturn {\n\t\theaders: { Authorization: `Bearer ${await getOAuthAccessToken(hostConfig)}` },\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\"\n\t};\n}\nasync function getWebSocketAuthParams$5({ hostConfig }) {\n\tif (isNode()) return { headers: { Authorization: `Bearer ${await getOAuthAccessToken(hostConfig)}` } };\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getOAuthAccessToken(hostConfig), \"websocket\");\n\t}) } };\n}\nasync function getWebResourceAuthParams$1({ hostConfig }) {\n\treturn { queryParams: { accessToken: await handlePotentialAuthenticationErrorAndRetry(hostConfig, async () => {\n\t\treturn exchangeAccessTokenForTemporaryToken(hostConfig, await getOAuthAccessToken(hostConfig), \"webresource\");\n\t}) } };\n}\nasync function handleAuthenticationError$5({ hostConfig }) {\n\tif (hostConfig.getAccessToken) {\n\t\tclearStoredOauthTokens(hostConfig);\n\t\treturn {\n\t\t\tpreventDefault: false,\n\t\t\tretry: true\n\t\t};\n\t}\n\tif (hostConfig.performInteractiveLogin) {\n\t\tclearStoredOauthTokens(hostConfig);\n\t\treturn { retry: true };\n\t}\n\tif (isBrowser()) {\n\t\tawait requestRedirect(hostConfig);\n\t\tstartFullPageLoginFlow(hostConfig);\n\t\treturn { preventDefault: true };\n\t}\n\tawait refreshAccessToken(hostConfig);\n\treturn {\n\t\tpreventDefault: false,\n\t\tretry: true\n\t};\n}\nvar oauth_default = {\n\trequiredProps: [\"clientId\"],\n\toptionalProps: [\n\t\t\"clientSecret\",\n\t\t\"redirectUri\",\n\t\t\"accessTokenStorage\",\n\t\t\"scope\",\n\t\t\"subject\",\n\t\t\"userId\",\n\t\t\"noCache\",\n\t\t\"getAccessToken\",\n\t\t\"performInteractiveLogin\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$5,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$5,\n\tgetWebResourceAuthParams: getWebResourceAuthParams$1,\n\thandleAuthenticationError: handleAuthenticationError$5\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/reference.ts\nfunction getRestCallAuthParams$4() {\n\tthrow new Error(\"getRestCallAuthParams should never be called for reference auth module\");\n}\nfunction getWebSocketAuthParams$4() {\n\tthrow new Error(\"getWebSocketAuthParams should never be called for reference auth module\");\n}\nfunction handleAuthenticationError$4() {\n\tthrow new Error(\"handleAuthenticationError should never be called for reference auth module\");\n}\n/**\n* This auth module is only here to provide a reference for the auth type \"reference\". It should never be used in practice.\n* @private */\nvar reference_default = {\n\trequiredProps: [\"reference\"],\n\toptionalProps: [],\n\tgetRestCallAuthParams: getRestCallAuthParams$4,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$4,\n\thandleAuthenticationError: handleAuthenticationError$4\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie/xrf-keys.ts\nconst xrfKeys = {};\n/**\n* @returns {string} 16 character long xrf-key\n*/\nfunction createXrfKey() {\n\tlet result = \"\";\n\tfor (let i = 0; i < 16; i += 1) {\n\t\tconst j = Math.floor(Math.random() * 62);\n\t\tif (j < 10) result += j;\n\t\telse if (j > 9 && j < 36) result += String.fromCharCode(j + 55);\n\t\telse result += String.fromCharCode(j + 61);\n\t}\n\treturn result;\n}\nfunction getXrfKey(hostConfig) {\n\tconst locationUrl = toValidLocationUrl(hostConfig);\n\txrfKeys[locationUrl] = xrfKeys[locationUrl] || createXrfKey();\n\treturn xrfKeys[locationUrl];\n}\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie.ts\nasync function getRestCallAuthParams$3({ hostConfig }) {\n\treturn {\n\t\theaders: { \"X-Qlik-XrfKey\": getXrfKey(hostConfig) },\n\t\tqueryParams: { xrfkey: getXrfKey(hostConfig) },\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$3({ hostConfig }) {\n\treturn { queryParams: {\n\t\txrfkey: getXrfKey(hostConfig),\n\t\t\"qlik-csrf-token\": await getCsrfToken(hostConfig, true)\n\t} };\n}\nasync function handleAuthenticationError$3({ hostConfig }) {\n\tif (hostConfig.loginUri) {\n\t\tawait requestRedirect(hostConfig);\n\t\tglobalThis.location.replace(hostConfig.loginUri.replace(\"{location}\", encodeURIComponent(globalThis.location.href)));\n\t\treturn { preventDefault: true };\n\t}\n\tif (hostConfig.getAccessToken) {\n\t\tconst token = await resolveTokenIfPresent(hostConfig.getAccessToken);\n\t\tif (token) {\n\t\t\tawait fetch(`${toValidLocationUrl(hostConfig)}/qlik-embed/main.js`, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tmode: \"cors\",\n\t\t\t\tcredentials: \"include\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\tAuthorization: `Bearer ${token}`\n\t\t\t\t},\n\t\t\t\tcache: \"no-cache\"\n\t\t\t});\n\t\t\treturn { retry: true };\n\t\t}\n\t}\n\treturn {};\n}\n/** @private */\nvar windows_cookie_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"loginUri\",\n\t\t\"crossSiteCookies\",\n\t\t\"getAccessToken\"\n\t],\n\tgetRestCallAuthParams: getRestCallAuthParams$3,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$3,\n\thandleAuthenticationError: handleAuthenticationError$3\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/windows-cookie-node.ts\nconst nodeCookieStore = /* @__PURE__ */ new Map();\nfunction clearCookieInStore(hostConfig) {\n\tconst key = serializeHostConfig(hostConfig);\n\tnodeCookieStore.delete(key);\n}\nfunction setCookieInStore(hostConfig, cookie) {\n\tconst key = serializeHostConfig(hostConfig);\n\tnodeCookieStore.set(key, cookie);\n}\nfunction getCookieInStore(hostConfig) {\n\tconst key = serializeHostConfig(hostConfig);\n\treturn nodeCookieStore.get(key);\n}\nasync function getCookie(hostConfig) {\n\tlet cookie = getCookieInStore(hostConfig);\n\tif (!cookie) {\n\t\tconst token = await resolveTokenIfPresent(hostConfig.getAccessToken);\n\t\tif (!token) throw new Error(\"Failed to acquire access token\");\n\t\tcookie = (await fetch(`${toValidLocationUrl(hostConfig)}/qlik-embed/main.js`, {\n\t\t\tmethod: \"GET\",\n\t\t\tmode: \"cors\",\n\t\t\tcredentials: \"include\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: `Bearer ${token}`\n\t\t\t}\n\t\t})).headers.get(\"Set-Cookie\") || void 0;\n\t\tif (cookie) setCookieInStore(hostConfig, cookie);\n\t}\n\tif (!cookie) throw new Error(\"Failed to exchange access token for cookie\");\n\treturn cookie;\n}\nasync function getRestCallAuthParams$2({ hostConfig }) {\n\treturn {\n\t\tqueryParams: { xrfkey: getXrfKey(hostConfig) },\n\t\theaders: {\n\t\t\tCookie: await getCookie(hostConfig),\n\t\t\t\"X-Qlik-XrfKey\": getXrfKey(hostConfig)\n\t\t},\n\t\tcredentials: internalGetCredentialsForCookieAuth(hostConfig)\n\t};\n}\nasync function getWebSocketAuthParams$2({ hostConfig }) {\n\treturn {\n\t\tqueryParams: { \"qlik-csrf-token\": await getCsrfToken(hostConfig, true) },\n\t\theaders: { Cookie: await getCookie(hostConfig) }\n\t};\n}\nasync function handleAuthenticationError$2({ hostConfig }) {\n\tclearCookieInStore(hostConfig);\n\treturn { retry: true };\n}\n/** @private */\nvar windows_cookie_node_default = {\n\trequiredProps: [],\n\toptionalProps: [\n\t\t\"loginUri\",\n\t\t\"crossSiteCookies\",\n\t\t\"getAccessToken\"\n\t],\n\tvalidateHostConfig: (hostConfig) => {\n\t\tif (typeof hostConfig.getAccessToken === \"function\") return true;\n\t\tif (typeof hostConfig.getAccessToken === \"string\") {\n\t\t\tif (!!!globalThis[hostConfig.getAccessToken]) throw new InvalidHostConfigError(\"The \\\"getAccessToken\\\" function name provided does not exist on globalThis.\");\n\t\t\treturn true;\n\t\t}\n\t\tthrow new InvalidHostConfigError(\"The \\\"getAccessToken\\\" property must be a function or the name of a globally defined function.\");\n\t},\n\tgetRestCallAuthParams: getRestCallAuthParams$2,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$2,\n\thandleAuthenticationError: handleAuthenticationError$2\n};\n\n//#endregion\n//#region src/auth/internal/default-auth-modules/pfx.ts\nfunction getRestCallAuthParams$1({ hostConfig }) {\n\treturn Promise.resolve({\n\t\theaders: {},\n\t\tqueryParams: {},\n\t\tcredentials: \"omit\",\n\t\tpfxOptions: {\n\t\t\tpfx: hostConfig?.pfx,\n\t\t\tpassphrase: hostConfig?.passphrase\n\t\t}\n\t});\n}\nasync function getWebSocketAuthParams$1({ hostConfig }) {\n\tif (isBrowser()) throw new Error(\"Not supported in browser environment\");\n\tconst xQlikUserHeader = hostConfig?.userHeader || \"UserDirectory=INTERNAL; UserId=sa_engine\";\n\treturn Promise.resolve({\n\t\theaders: { \"X-Qlik-User\": xQlikUserHeader },\n\t\tpfxOptions: {\n\t\t\tpfx: hostConfig?.pfx,\n\t\t\tpassphrase: hostConfig?.passphrase || \"\"\n\t\t}\n\t});\n}\nfunction handleAuthenticationError$1() {\n\treturn Promise.resolve({});\n}\nvar pfx_default = {\n\trequiredProps: [\"pfx\"],\n\toptionalProps: [\"passphrase\", \"userHeader\"],\n\tgetRestCallAuthParams: getRestCallAuthParams$1,\n\tgetWebSocketAuthParams: getWebSocketAuthParams$1,\n\thandleAuthenticationError: handleAuthenticationError$1\n};\n\n//#endregion\n//#region src/auth/internal/auth-module-registry.ts\n/**\n* Auth module registry\n*/\nconst authModules = {};\n/**\n* A promise that gets recreated when an auth module is currently being loaded\n*/\nlet ongoingAuthModuleLoading = Promise.resolve();\nlet authModulesRegistered = false;\n(function registerDefaultAuthModules() {\n\tif (!authModulesRegistered) {\n\t\tregisterAuthModule$1(\"apikey\", apikey_default);\n\t\tregisterAuthModule$1(\"cookie\", cookie_default);\n\t\tregisterAuthModule$1(\"none\", none_default);\n\t\tregisterAuthModule$1(\"noauth\", noauth_default);\n\t\tregisterAuthModule$1(\"oauth2\", oauth_default);\n\t\tregisterAuthModule$1(\"anonymous\", anonymous_default);\n\t\tregisterAuthModule$1(\"pfx\", pfx_default);\n\t\tif (isBrowser()) registerAuthModule$1(\"windowscookie\", windows_cookie_default);\n\t\telse registerAuthModule$1(\"windowscookie\", windows_cookie_node_default);\n\t\tregisterAuthModule$1(\"reference\", reference_default);\n\t\tauthModulesRegistered = true;\n\t}\n})();\n/**\n* Registers an auth module that can handle authentication. An auth module is used by specifying its name as authType in the HostConfig passed in to api calls.\n* @param name the name of the module\n* @param authModule the implementation of the AuthModule interface\n*/\nfunction registerAuthModule$1(name, authModule) {\n\tauthModules[name.toLowerCase()] = authModule;\n}\n/**\n* Get the names of all registered AuthModules.\n* @returns Array of all registered AuthModules\n*/\nfunction getRegisteredAuthModules() {\n\treturn Object.keys(authModules);\n}\n/**\n* Gets the auth module with the given name. The name is case insensitive.\n* @param authType The name of the auth module to get. The name is case insensitive.\n* @returns\n*/\nfunction getRegisteredAuthModule(authType) {\n\treturn authModules[authType.toLowerCase()];\n}\n/**\n* Gets the auth module for a host config. If only clientId is set, then authType is assumed and set to \"oauth2\".\n* If host config is undefined or empty, then authType is assumed and set to \"cookie\" or \"windowscookie\" depending\n* on which platform the host is running on.\n*\n* @private\n* @param hostConfig\n*/\nasync function getAuthModule(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tconst authType = await determineAuthType$1(hostConfigToUse);\n\tif (ongoingAuthModuleLoading) await ongoingAuthModuleLoading;\n\tlet authModule = getRegisteredAuthModule(authType);\n\tif (!authModule) {\n\t\t/**\n\t\t* This is basically poor mans synchronous block so that one globally defined asynchronous auth module factory function\n\t\t* is not called more than once if several calls to getAuthModule come in in sequence.\n\t\t*/\n\t\tongoingAuthModuleLoading = (async () => {\n\t\t\tauthModule = await resolveGloballyDefinedAuthModule(authType);\n\t\t\tif (authModule) registerAuthModule$1(authType, authModule);\n\t\t})();\n\t\tawait ongoingAuthModuleLoading;\n\t}\n\tif (!authModule) throw new InvalidAuthTypeError(authType);\n\tif (authModule.validateHostConfig) authModule.validateHostConfig({\n\t\tauthType,\n\t\t...hostConfigToUse\n\t});\n\telse internalValidateHostConfig({\n\t\tauthType,\n\t\t...hostConfigToUse\n\t}, {\n\t\trequiredProps: authModule.requiredProps || [],\n\t\toptionalProps: authModule.optionalProps || []\n\t});\n\treturn authModule;\n}\nasync function resolveGloballyDefinedAuthModule(authType) {\n\tconst globalVariable = globalThis[authType];\n\tif (globalVariable) {\n\t\tlet potentialAuthModule;\n\t\tif (typeof globalVariable === \"function\") potentialAuthModule = await globalVariable();\n\t\telse potentialAuthModule = globalVariable;\n\t\tif (potentialAuthModule && potentialAuthModule.getRestCallAuthParams && potentialAuthModule.getWebSocketAuthParams && potentialAuthModule.handleAuthenticationError) return potentialAuthModule;\n\t\tconsole.error(\"Not a valid auth module\", potentialAuthModule);\n\t\tthrow new InvalidAuthTypeError(authType);\n\t}\n\treturn Promise.resolve(void 0);\n}\n/**\n* @private\n* Helper function for validating a host config in runtime\n* @param hostConfig - The host config to validate\n* @param options - Options for validation\n* @param options.requiredProps - The required properties in the host config\n* @param options.optionalProps - The optional properties in the host config\n* @throws {InvalidHostConfigError} If the host config is invalid\n* @returns {boolean} Returns true if the host config is valid\n* */\nfunction internalValidateHostConfig(hostConfig, { requiredProps, optionalProps }) {\n\tconst missingRequiredProps = [];\n\tfor (const requiredProp of requiredProps) if (!hostConfig[requiredProp]) missingRequiredProps.push(requiredProp);\n\tif (missingRequiredProps.length > 0) throw new InvalidHostConfigError(`missing required properties in host config; '${missingRequiredProps.join(\"', '\")}'`);\n\tconst validProps = [\n\t\t...hostConfigCommonProperties,\n\t\t...requiredProps,\n\t\t...optionalProps\n\t];\n\tconst invalidKeys = [];\n\tObject.keys(hostConfig).forEach((key) => {\n\t\tif (!validProps.includes(key)) invalidKeys.push(key);\n\t});\n\tif (invalidKeys.length > 0) console.warn(`WARNING: unknown properties in host config; '${invalidKeys.join(\"', '\")}'`);\n\treturn true;\n}\n/**\n* Determines the authType associated with a HostConfig even if it's\n* not explicitly set.\n*/\nasync function determineAuthType$1(hostConfig) {\n\tif (hostConfig.authType) return hostConfig.authType;\n\tif (hostConfig.apiKey) return \"apikey\";\n\tif (hostConfig.accessCode) return \"anonymous\";\n\tif (hostConfig.clientId) return \"oauth2\";\n\tif (hostConfig.webIntegrationId) return \"cookie\";\n\tif (hostConfig.reference) return \"reference\";\n\tif (hostConfig.pfx) return \"pfx\";\n\tif (await isWindows(hostConfig)) return \"windowscookie\";\n\treturn \"cookie\";\n}\n\n//#endregion\n//#region src/auth/auth-errors.ts\n/** Error is thrown when a host config has incorrect or missing settings */\nvar InvalidHostConfigError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(`Invalid host config: ${message}`);\n\t\tthis.name = \"InvalidHostConfigError\";\n\t}\n};\n/** Error is thrown when a host config has an auth type with incompatible settings */\nvar UnexpectedAuthTypeError = class extends Error {\n\tconstructor(...expectedAuthTypes) {\n\t\tconst ors = expectedAuthTypes.map((item, index) => index === 0 ? `\"${item}\"` : `or \"${item}\"`).join(\" \");\n\t\tsuper(`HostConfig is not properly configured. authType is expected to be ${ors}`);\n\t\tthis.name = \"UnexpectedAuthTypeError\";\n\t}\n};\n/** Error is thrown when a host config uses an auth type that has not been registered */\nvar InvalidAuthTypeError = class extends Error {\n\tconstructor(authType) {\n\t\tconst validAuthModules = getRegisteredAuthModules();\n\t\tsuper(`Not a valid auth type: ${authType}, valid auth types are; '${validAuthModules.filter((name) => name.toLowerCase() !== \"qmfeembedframerauthmodule\").join(\"', '\")}'`);\n\t\tthis.name = \"InvalidAuthTypeError\";\n\t}\n};\nfunction errorToString({ title, detail, code, status }) {\n\tif (detail) return `${title} - ${detail} (Status: ${status}, Code: ${code})`;\n\treturn `${title} (Status: ${status}, Code: ${code})`;\n}\nvar AuthorizationError = class extends Error {\n\terrors;\n\tconstructor(errors) {\n\t\tif (typeof errors !== \"object\") {\n\t\t\tsuper(\"Unknown error\");\n\t\t\treturn;\n\t\t}\n\t\tconst errorArray = Array.isArray(errors) ? errors : [errors];\n\t\tsuper(errorArray.map(errorToString).join(\", \"));\n\t\tthis.errors = errorArray;\n\t}\n};\n\n//#endregion\n//#region src/auth/internal/fatal-auth-error-listeners.ts\nconst listenerRegistries = /* @__PURE__ */ new Map();\nlet lastErrorMessage = \"\";\nlet lastHostConfig;\n/**\n* Retrieves the listener registry for a given host configuration, creating one if it doesn't exist.\n*/\nfunction getAuthErrorListenerRegistryForHostConfig(hostConfig) {\n\tconst key = serializeHostConfig$1(hostConfig);\n\tlet registry = listenerRegistries.get(key);\n\tif (!registry) {\n\t\tregistry = { listeners: /* @__PURE__ */ new Set() };\n\t\tlistenerRegistries.set(key, registry);\n\t}\n\treturn registry;\n}\n/**\n* Emits a fatal authentication error to all registered listeners plus to the onAuthFailed property in the hostConfig.\n* If there are no listeners or onAuthFailed callback, the error message is logged to the console.\n*/\nfunction emitFatalAuthError(hostConfig, normalizedError) {\n\tif (hostConfig === lastHostConfig && normalizedError.message === lastErrorMessage) return;\n\tlastHostConfig = hostConfig;\n\tlastErrorMessage = normalizedError.message;\n\tlet someOneIsListening = false;\n\tconst registry = getAuthErrorListenerRegistryForHostConfig(hostConfig);\n\tfor (const listener of registry.listeners) try {\n\t\tsomeOneIsListening = true;\n\t\tlistener(normalizedError);\n\t} catch (listenerError) {\n\t\tconsole.warn(\"Error in auth error listener\", listenerError);\n\t}\n\tif (hostConfig.onAuthFailed) try {\n\t\tsomeOneIsListening = true;\n\t\thostConfig.onAuthFailed(normalizedError);\n\t} catch (callbackError) {\n\t\tconsole.warn(\"Error in onAuthFailed callback\", callbackError);\n\t}\n\tif (!someOneIsListening) console.error(normalizedError.message);\n}\n/**\n* Registers a listener for fatal auth errors. This means errors in the actual auth mechanism, i.e. misconfigurations etc.\n*/\nfunction onFatalAuthError$1(hostConfig, callback) {\n\tconst registry = getAuthErrorListenerRegistryForHostConfig(hostConfig);\n\tregistry.listeners.add(callback);\n\treturn () => {\n\t\tregistry.listeners.delete(callback);\n\t};\n}\n\n//#endregion\n//#region src/auth/auth-functions.ts\n/**\n* Set initial loggingOut value to false to make sure it has a value before any auth module is loaded\n*/\nglobalThis.loggingOut = false;\n/**\n* Determines the authType associated with a HostConfig even if it's\n* not explicitly set.\n* @param hostConfig the HostConfig containing authentication details\n* @returns promise that resolvs with the determined authentication type\n*/\nfunction determineAuthType(hostConfig) {\n\treturn determineAuthType$1(hostConfig);\n}\n/**\n* Determines if a host is cross origin or not\n* @param hostConfig the HostConfig containing authentication details\n* @private\n*/\nfunction isHostCrossOrigin(hostConfig) {\n\tif (!globalThis.location?.origin) return true;\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (Object.keys(hostConfigToUse).length === 0) return false;\n\ttry {\n\t\treturn new URL(toValidLocationUrl(hostConfigToUse)).origin !== globalThis.location.origin;\n\t} catch {}\n\treturn false;\n}\n/**\n* Determines if the host we're connecting to is running on windows or not\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function isWindows(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (typeof hostConfigToUse.forceIsWindows === \"boolean\") return hostConfigToUse.forceIsWindows;\n\tif (hostConfigToUse.host?.endsWith(\".qlik-stage.com\") || hostConfigToUse.host?.endsWith(\".qlikcloud.com\") || hostConfigToUse.host?.endsWith(\".qlikcloudgov.com\")) return false;\n\tif (hostConfigToUse.authType === \"cookie\") return false;\n\tif (hostConfigToUse.authType === \"windowscookie\") return true;\n\treturn (await getPlatform({ hostConfig })).isWindows;\n}\n/**\n* Returns a valid location url based on the supplied location string. If location is undefined the default is returned\n* @param hostConfig the HostConfig containing authentication details\n*/\nfunction toValidLocationUrl(hostConfig) {\n\tconst url = resolveHostConfig(hostConfig)?.host?.trim();\n\tlet locationUrl;\n\tif (!url) locationUrl = \"\";\n\telse if (url.toLowerCase().startsWith(\"https://\") || url.toLowerCase().startsWith(\"http://\")) locationUrl = url;\n\telse locationUrl = `https://${url}`;\n\twhile (locationUrl[locationUrl.length - 1] === \"/\") locationUrl = locationUrl.substring(0, locationUrl.length - 1);\n\treturn locationUrl;\n}\n/**\n* Returns a valid websocket location url based on the supplied location string. If location is undefined the default is returned\n* @param hostConfig the HostConfig containing authentication details\n*/\nfunction toValidWebsocketLocationUrl(hostConfig) {\n\tconst url = resolveHostConfig(hostConfig)?.host;\n\tlet locationUrl;\n\tif (!url) locationUrl = globalThis.location.origin;\n\telse if (url.toLowerCase().startsWith(\"https://\") || url.toLowerCase().startsWith(\"http://\")) locationUrl = url;\n\telse locationUrl = `https://${url}`;\n\twhile (locationUrl[locationUrl.length - 1] === \"/\") locationUrl = locationUrl.substring(0, locationUrl.length - 1);\n\treturn locationUrl.replace(leadingHttp, \"ws\");\n}\n/**\n* Returns a record of query parameters that needs to be added to websockets\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function getWebSocketAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getWebSocketAuthParams({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t});\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Returns a record of query parameters that needs to be added to resources requests, e.g.\n* image tags, etc.\n* @param hostConfig the HostConfig containing authentication details\n*/\nasync function getWebResourceAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getWebResourceAuthParams?.({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t}) || { queryParams: {} };\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Calls and return handleAuthenticationError on the authModule a host config is associated with.\n*/\nasync function handleAuthenticationError(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\tconst result = await (await getAuthModule(hostConfigToUse)).handleAuthenticationError({\n\t\t...props,\n\t\thostConfig: hostConfigToUse\n\t});\n\tconst willRetry = props.canRetry && result.retry;\n\tconst willHangUntilANewPageIsLoaded = result.preventDefault;\n\tif (!willRetry && !willHangUntilANewPageIsLoaded) {\n\t\tconst { status, errorBody } = props;\n\t\temitFatalAuthError(hostConfigToUse, normalizeInbandAuthError({\n\t\t\tstatus,\n\t\t\terrorBody\n\t\t}));\n\t}\n\treturn result;\n}\n/**\n* Returns a record of headers and a record of query params that needs to be added to outgoing rest calls\n* @param props.hostConfig the HostConfig containing authentication details\n* @param props.method the http method, which may affect what authentication are needed.\n*/\nasync function getRestCallAuthParams(props) {\n\tconst hostConfigToUse = resolveHostConfig(props.hostConfig);\n\ttry {\n\t\treturn await (await getAuthModule(hostConfigToUse)).getRestCallAuthParams({\n\t\t\t...props,\n\t\t\thostConfig: hostConfigToUse\n\t\t});\n\t} catch (err) {\n\t\temitFatalAuthError(hostConfigToUse, normalizeAuthModuleError(err));\n\t\tthrow err;\n\t}\n}\n/**\n* Returns a record of headers and a record of query params that needs to be added to outgoing rest calls\n* @param props.hostConfig the HostConfig containing authentication details\n* @param props.method the http method, which may affect what authentication are needed.\n*/\nasync function getAccessToken(props) {\n\tconst authorizationHeader = (await getRestCallAuthParams({\n\t\tmethod: \"GET\",\n\t\t...props\n\t})).headers?.Authorization;\n\tif (authorizationHeader.indexOf(\"Bearer \") === 0) return authorizationHeader.substring(7);\n\tthrow new Error(\"Unknown format of authorization header returned by remote auth module\");\n}\n/**\n* Registers an auth module that can handle authentication. An auth module is used by specifying its name as authType in the HostConfig passed in to api calls.\n* @param name the name of the module\n* @param authModule the implementation of the AuthModule interface\n*/\nfunction registerAuthModule(name, authModule) {\n\tregisterAuthModule$1(name, authModule);\n}\n/**\n* Sets the default host config that will be used for all api calls that do not include a HostConfig\n* @param hostConfig the default HostConfig to use\n*/\nfunction setDefaultHostConfig(hostConfig) {\n\tsetDefaultHostConfig$1(hostConfig);\n}\n/**\n* Registers a host config with the given name.\n* @param name The name of the host config to be used to reference the host config later.\n* @param hostConfig The host config to register.\n*/\nfunction registerHostConfig(name, hostConfig) {\n\tregisterHostConfig$1(name, hostConfig);\n}\n/**\n* Unregisters a host config with the given name.\n* @param name The name of the host config to unregister.\n*/\nfunction unregisterHostConfig(name) {\n\tunregisterHostConfig$1(name);\n}\n/**\n* Serializes the provided hostConfig, if present, otherwise the default one.\n*/\nfunction serializeHostConfig(hostConfig) {\n\treturn serializeHostConfig$1(hostConfig);\n}\n/**\n* Throws errors if hostConfig is missing or missing properties on cross domain requests\n*/\nfunction checkForCrossDomainRequest(hostConfig) {\n\tconst hostConfigToUse = resolveHostConfig(hostConfig);\n\tif (isHostCrossOrigin(hostConfigToUse)) {\n\t\tif (Object.keys(hostConfigToUse).length === 0) throw new InvalidHostConfigError(\"a host config must be provided when making a cross domain request\");\n\t\tif (!hostConfigToUse.host) throw new InvalidHostConfigError(\"A 'host' property must be set in host config when making a cross domain request\");\n\t}\n}\n/**\n* Returns a normalized host config that will always be the same instance when the serialized host config is the same.\n*/\nfunction normalizeHostConfig(hostConfig) {\n\treturn normalizeHostConfig$1(hostConfig);\n}\n/**\n* Logs out the user and sets `global.loggingOut` to true.\n* **NOTE**: Does not abort pending requests.\n*/\nconst logout = () => {\n\tglobalThis.loggingOut = true;\n\tglobalThis.location.href = \"/logout\";\n};\nconst leadingHttp = /^http/;\n/**\n* Normalizes the error object returned from the auth module to a FatalAuthError\n* @param errorBody The error body to normalize\n* @param status The status code of the error\n* @returns Either the error message or a default message\n* @private\n*/\nfunction normalizeInbandAuthError({ errorBody, status }) {\n\tconst authError = errorBody;\n\tif (typeof authError?.errors === \"object\") return { message: new AuthorizationError(authError?.errors).message };\n\treturn { message: `HTTP ${status}` };\n}\n/**\n* Normalizes the error object returned from the auth module to a FatalAuthError\n* @param err The error to normalize\n* @returns Either the error message or a default message\n* @private\n*/\nfunction normalizeAuthModuleError(err) {\n\treturn { message: err.message || \"Unknown error\" };\n}\n/**\n* Replaces the supplied host config according the following rules:\n* * If the host config is a reference to a registered host config, the registered host config will be used.\n* * If the host config is undefined or empty, the default host config will be returned.\n* * If the host config is not a reference and not empty or undefined, it will be returned as is.\n* * If the host config is empty or undefined an empty object (which represents the default cookie mode) is returned.\n* @param hostConfig - The host config to resolve\n*/\nfunction resolveHostConfig(hostConfig) {\n\tif (hostConfig?.reference) {\n\t\tconst refConfig = getRegisteredHostConfig(hostConfig.reference);\n\t\tif (!refConfig) throw new InvalidHostConfigError(`Host config with name \"${hostConfig.reference}\" not found.`);\n\t\treturn refConfig;\n\t}\n\tif (hostConfig && Object.keys(hostConfig).length > 0) return hostConfig;\n\treturn getDefaultHostConfig$1();\n}\n/**\n* Returns the default host config that is used for all qmfe api calls that do not include a host config\n*/\nfunction getDefaultHostConfig() {\n\treturn getDefaultHostConfig$1();\n}\n/**\n* Registers a callback to be invoked when a fatal authentication error occurs for the provided hostConfig.\n* @param callback The callback function to register\n* @returns A function to unregister the callback\n*/\nfunction onFatalAuthError(hostConfig, callback) {\n\treturn onFatalAuthError$1(hostConfig, callback);\n}\n/**\n* Registers a listener for page redirect requested by the auth module that is handling authentication for the provided host configuration.\n* This is typically used when embedded to let the end user explicitly approve a redirect by for instance clicking an \"authorize\" button. The user can then decide to leave that UI unauthorized\n* and stay on the page.\n* The listener is provided a `proceed` function that if called continues the redirect process. Before actually redirecting the page, the onPageRedirectStarted listeners are called.\n* Note that if more than one listener is registered, it still takes just one proceed call to continue the redirect process so it can not be used to block the redirect.\n*/\nfunction onPageRedirectRequested(hostConfig, listener) {\n\treturn onPageRedirectRequested$1(hostConfig, listener);\n}\n/**\n* Registers a listener that will be called when a page redirect is started by the auth module that is handling authentication for the provided host configuration.\n*/\nfunction onPageRedirectStarted(hostConfig, listener) {\n\treturn onPageRedirectStarted$1(hostConfig, listener);\n}\n\n//#endregion\n//#region src/interceptors/boot-interceptors.ts\n/**\n* @internal\n* The paths expected in the from core-init BFF response.\n* Exposed for testing.\n*/\nconst coreBootPaths = /* @__PURE__ */ new Set([\n\t\"/api/v1/brands/active\",\n\t\"/api/v1/claims/me\",\n\t\"/api/v1/licenses/allotments\",\n\t\"/api/v1/licenses/allotments/me\",\n\t\"/api/v1/licenses/number\",\n\t\"/api/v1/licenses/status\",\n\t\"/api/v1/tenant-settings\",\n\t\"/api/v1/tenants/me\",\n\t\"/api/v1/user-settings\",\n\t\"/api/v1/users/me\",\n\t\"/api/v1/user-locale\"\n]);\n/**\n* @internal\n* The path of the core-init BFF response.\n* Exposed for testing.\n*/\nconst coreBootEndpoint = \"/api/v1/boot/core-init\";\nlet coreBootPromises = {};\nlet enableDespiteNode = false;\nfunction interceptorEnabled() {\n\treturn !isNode() || enableDespiteNode;\n}\n/**\n* An interceptor that populates the cache from the response of a _backend\n* for frontend_ endpoint. This endpoint contains the response of the most common\n* initial calls, mainly from **qmfe-core**.\n*\n* If the interceptor finds a matching call it runs once and then removes itself after\n* populating the cache causing the original request (and following ones) to hit the cache instead.\n*\n* The endpoint is implemented in the _customizations_ service and should\n* contain the responses of the requests specified in 'coreBootPaths'.\n*/\nconst coreBootInterceptor = async (request, proceed) => {\n\tif (!interceptorEnabled()) return proceed(request);\n\tif (request.pathTemplate !== \"/api/v1/features\" && !coreBootPaths.has(request.pathTemplate)) return proceed(request);\n\tconst hostConfig = request.options?.hostConfig;\n\tif (hostConfig?.authType === \"noauth\" || await isWindows(hostConfig) || (await getPlatform({ hostConfig })).isCloudConsole) return proceed(request);\n\tconst serializedHostConfig = serializeHostConfig$1(request.options?.hostConfig);\n\tcoreBootPromises[serializedHostConfig] ??= callCoreBootAndFillCache(hostConfig, serializedHostConfig);\n\tif (request.pathTemplate !== \"/api/v1/features\") await coreBootPromises[serializedHostConfig];\n\treturn proceed(request);\n};\nasync function callCoreBootAndFillCache(hostConfig, serializedHostConfig) {\n\tconst bootRequest = {\n\t\tmethod: \"GET\",\n\t\tpathTemplate: coreBootEndpoint,\n\t\toptions: { hostConfig }\n\t};\n\ttry {\n\t\tconst bootResponse = await invokeFetch(\".global\", bootRequest);\n\t\tconst locationUrl = toValidLocationUrl(hostConfig);\n\t\tpopulateCacheFrom(bootResponse.data, coreBootPaths, serializedHostConfig, locationUrl);\n\t} catch (e) {\n\t\tconsole.error(\"Failed to bootstrap core-info:\", e);\n\t}\n}\nfunction populateCacheFrom(responses, pathsToInclude, serializedHostConfig, locationUrl) {\n\tif (!responses) return;\n\tfor (const res of responses) {\n\t\tif (!pathsToInclude.has(res.path)) continue;\n\t\tconst completeUrl = locationUrl + res.path;\n\t\tconst { status, method, data } = res;\n\t\tif (typeof data === \"undefined\") continue;\n\t\tif (status && (status < 200 || status >= 300)) continue;\n\t\tconst response = Promise.resolve({\n\t\t\tstatus: status || 200,\n\t\t\tdata\n\t\t});\n\t\tconst cacheKey = toCacheKey({\n\t\t\turl: completeUrl,\n\t\t\tserializedHostConfig\n\t\t});\n\t\tupdateCache(globalCacheNamespace, {\n\t\t\tmethod: method || \"GET\",\n\t\t\tcompleteUrl,\n\t\t\tcacheKey\n\t\t}, response);\n\t}\n}\n\n//#endregion\n//#region src/interceptors/interceptors.ts\nlet GLOBAL_INTERCEPTORS;\nfunction createInterceptors() {\n\tconst interceptors = [...GLOBAL_INTERCEPTORS?.getInterceptors() || []];\n\treturn {\n\t\t/**\n\t\t* Adds an interceptor to the global interceptor stack\n\t\t* Returns the newly added interceptor\n\t\t* @param interceptor the interceptor to add\n\t\t* @returns the newly added interceptor\n\t\t*/\n\t\taddInterceptor: (interceptor) => {\n\t\t\tinterceptors.push(interceptor);\n\t\t\treturn interceptor;\n\t\t},\n\t\t/**\n\t\t* Removes an interceptor from the global interceptor stack\n\t\t* Returns null if the interceptor was not found\n\t\t* @param interceptor the interceptor remove\n\t\t* @returns the removed interceptor or null if not found\n\t\t*/\n\t\tremoveInterceptor: (interceptor) => {\n\t\t\tconst index = interceptors.indexOf(interceptor);\n\t\t\tlet removed;\n\t\t\tif (index !== -1) removed = interceptors.splice(index, 1)[0];\n\t\t\treturn removed || null;\n\t\t},\n\t\t/**\n\t\t* Gets all registered interceptors\n\t\t*/\n\t\tgetInterceptors: () => interceptors\n\t};\n}\nlet addDefaultInterceptorsRun = false;\nfunction addDefaultInterceptors() {\n\tif (addDefaultInterceptorsRun) return;\n\tif (isBrowser()) {\n\t\tconst readFlagsFromUrlQuery = () => {\n\t\t\tconst featuresParam = new URLSearchParams(window.location.search).get(\"features\");\n\t\t\tif (!featuresParam) return {};\n\t\t\treturn featuresParam.split(\",\").map((item) => item.trim()).reduce((map, obj) => {\n\t\t\t\tconst value = !obj.startsWith(\"!\");\n\t\t\t\tconst key = value ? obj : obj.substring(1);\n\t\t\t\tmap[key] = value;\n\t\t\t\treturn map;\n\t\t\t}, {});\n\t\t};\n\t\tconst readFlagsFromLocalStorage = () => {\n\t\t\ttry {\n\t\t\t\tconst featuresParam = localStorage.getItem(\"qcs-features\");\n\t\t\t\tif (featuresParam) return JSON.parse(featuresParam);\n\t\t\t\treturn {};\n\t\t\t} catch {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t};\n\t\tconst flagsFromUrl = readFlagsFromUrlQuery();\n\t\tconst flagsFromLocalStorage = readFlagsFromLocalStorage();\n\t\tconst featuresInterceptor = async (request, proceed) => {\n\t\t\tlet resultPromise;\n\t\t\tif (request.pathTemplate === \"/api/v1/features\") {\n\t\t\t\tresultPromise = proceed(request);\n\t\t\t\tconst result = await resultPromise;\n\t\t\t\treturn {\n\t\t\t\t\t...result,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t...result.data,\n\t\t\t\t\t\t...flagsFromLocalStorage,\n\t\t\t\t\t\t...flagsFromUrl\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn proceed(request);\n\t\t};\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(featuresInterceptor);\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(coreBootInterceptor);\n\t\tconst isProdHost = () => {\n\t\t\ttry {\n\t\t\t\tconst host = window.location.hostname;\n\t\t\t\treturn host === \"qlikcloud.com\" || host.endsWith(\".qlikcloud.com\");\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\t\tconst readSignadotRoutingKey = () => {\n\t\t\tif (isProdHost()) return null;\n\t\t\ttry {\n\t\t\t\tconst raw = localStorage.getItem(\"qcs-signadot-key\");\n\t\t\t\tif (raw === null) return null;\n\t\t\t\tconst trimmed = raw.trim();\n\t\t\t\treturn trimmed.length > 0 ? trimmed : null;\n\t\t\t} catch {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t\tconst upsertSignadotBaggage = (existing, key) => {\n\t\t\tconst entry = `sd-routing-key=${key}`;\n\t\t\tif (!existing) return entry;\n\t\t\tconst kept = existing.split(\",\").map((part) => part.trim()).filter((part) => part.length > 0 && !part.startsWith(\"sd-routing-key=\"));\n\t\t\tkept.push(entry);\n\t\t\treturn kept.join(\",\");\n\t\t};\n\t\tconst signadotInterceptor = async (request, proceed) => {\n\t\t\tconst key = readSignadotRoutingKey();\n\t\t\tif (!key) return proceed(request);\n\t\t\tconst existingHeaders = request.options?.headers || {};\n\t\t\treturn proceed({\n\t\t\t\t...request,\n\t\t\t\toptions: {\n\t\t\t\t\t...request.options,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...existingHeaders,\n\t\t\t\t\t\tbaggage: upsertSignadotBaggage(existingHeaders.baggage, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tGLOBAL_INTERCEPTORS.addInterceptor(signadotInterceptor);\n\t}\n\taddDefaultInterceptorsRun = true;\n}\n/**\n* The global interceptor stack\n*/\nGLOBAL_INTERCEPTORS = createInterceptors();\n/**\n* Adds an interceptor to the global interceptor stack\n* Returns the newly added interceptor\n* @param interceptor the interceptor to add\n* @returns the newly added interceptor\n*/\nfunction addInterceptor(interceptor) {\n\treturn GLOBAL_INTERCEPTORS.addInterceptor(interceptor);\n}\n/**\n* Removes an interceptor from the global interceptor stack\n* @param interceptor the interceptor remove\n*/\nfunction removeInterceptor(interceptor) {\n\treturn GLOBAL_INTERCEPTORS.removeInterceptor(interceptor);\n}\n/**\n* Gets all registered interceptors\n*/\nfunction getInterceptors() {\n\treturn GLOBAL_INTERCEPTORS.getInterceptors();\n}\n/**\n* The interceptors API\n*/\nconst interceptors = {\n\taddInterceptor,\n\tremoveInterceptor,\n\tgetInterceptors,\n\tcreateInterceptors\n};\n\n//#endregion\nexport { InvalidHostConfigError as A, getPlatform as B, serializeHostConfig as C, unregisterHostConfig as D, toValidWebsocketLocationUrl as E, appendQueryToUrl as F, EncodingError as I, InvokeFetchError as L, clearApiCache as M, invokeFetch as N, AuthorizationError as O, parseFetchResponse as P, exposeInternalApiOnWindow as R, registerHostConfig as S, toValidLocationUrl as T, normalizeHostConfig as _, interceptors as a, onPageRedirectStarted as b, getAccessToken as c, getWebResourceAuthParams as d, getWebSocketAuthParams as f, logout as g, isWindows as h, getInterceptors as i, UnexpectedAuthTypeError as j, InvalidAuthTypeError as k, getDefaultHostConfig as l, isHostCrossOrigin as m, addInterceptor as n, removeInterceptor as o, handleAuthenticationError as p, createInterceptors as r, determineAuthType as s, addDefaultInterceptors as t, getRestCallAuthParams as u, onFatalAuthError as v, setDefaultHostConfig as w, registerAuthModule as x, onPageRedirectRequested as y, generateRandomString as z };","import { A as InvalidHostConfigError, C as serializeHostConfig, D as unregisterHostConfig, E as toValidWebsocketLocationUrl, O as AuthorizationError, S as registerHostConfig, T as toValidLocationUrl, _ as normalizeHostConfig, b as onPageRedirectStarted, c as getAccessToken, d as getWebResourceAuthParams, f as getWebSocketAuthParams, g as logout, h as isWindows, j as UnexpectedAuthTypeError, k as InvalidAuthTypeError, l as getDefaultHostConfig, m as isHostCrossOrigin, p as handleAuthenticationError, s as determineAuthType, u as getRestCallAuthParams, v as onFatalAuthError, w as setDefaultHostConfig, x as registerAuthModule, y as onPageRedirectRequested } from \"./interceptors-_UakH7Gk.js\";\n\n//#region src/auth/auth.ts\n/**\n* Provides functionalities for authentication with Qlik backends.\n*/\nconst auth = {\n\tdetermineAuthType,\n\tgetDefaultHostConfig,\n\tgetRestCallAuthParams,\n\tgetWebResourceAuthParams,\n\tgetWebSocketAuthParams,\n\thandleAuthenticationError,\n\tisHostCrossOrigin,\n\tisWindows,\n\tlogout,\n\tregisterAuthModule,\n\tregisterHostConfig,\n\tserializeHostConfig,\n\tsetDefaultHostConfig,\n\ttoValidLocationUrl,\n\ttoValidWebsocketLocationUrl,\n\tunregisterHostConfig,\n\tnormalizeHostConfig,\n\tonFatalAuthError,\n\tonPageRedirectRequested,\n\tonPageRedirectStarted\n};\n\n//#endregion\nexport { AuthorizationError, InvalidAuthTypeError, InvalidHostConfigError, UnexpectedAuthTypeError, auth as default, determineAuthType, getAccessToken, getDefaultHostConfig, getRestCallAuthParams, getWebResourceAuthParams, getWebSocketAuthParams, handleAuthenticationError, isHostCrossOrigin, isWindows, logout, normalizeHostConfig, onFatalAuthError, onPageRedirectRequested, onPageRedirectStarted, registerAuthModule, registerHostConfig, serializeHostConfig, setDefaultHostConfig, toValidLocationUrl, toValidWebsocketLocationUrl, unregisterHostConfig };"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}