@qlik/api 2.3.1 → 2.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.
Files changed (167) hide show
  1. package/analytics/change-stores.d.ts +40 -76
  2. package/analytics/change-stores.js +9 -10
  3. package/analytics.d.ts +1 -2
  4. package/analytics.js +5 -6
  5. package/api-keys.d.ts +46 -100
  6. package/api-keys.js +3 -4
  7. package/apps.d.ts +334 -461
  8. package/apps.js +74 -6
  9. package/assistants.d.ts +172 -337
  10. package/assistants.js +3 -4
  11. package/audits.d.ts +41 -85
  12. package/audits.js +3 -4
  13. package/auth-types.d.ts +110 -1
  14. package/auth-types.js +22 -1
  15. package/auth.d.ts +1 -2
  16. package/auth.js +1 -1
  17. package/automation-connections.d.ts +44 -95
  18. package/automation-connections.js +3 -4
  19. package/automation-connectors.d.ts +10 -20
  20. package/automation-connectors.js +3 -4
  21. package/automations.d.ts +54 -112
  22. package/automations.js +3 -4
  23. package/automl-deployments.d.ts +17 -36
  24. package/automl-deployments.js +3 -4
  25. package/automl-predictions.d.ts +12 -24
  26. package/automl-predictions.js +3 -4
  27. package/banners.d.ts +8 -14
  28. package/banners.js +3 -4
  29. package/brands.d.ts +19 -39
  30. package/brands.js +3 -4
  31. package/chunks/auth-B8lJw7rm.js +31 -0
  32. package/chunks/{interceptors-2VSXImC9.js → boot-interceptors-DqRxTczb.js} +50 -150
  33. package/chunks/{chunk-D3vHIbds.js → chunk-BdHzlgOL.js} +3 -3
  34. package/chunks/{invoke-fetch-CckTK7bh.js → invoke-fetch-DMAi6Fg3.js} +3 -3
  35. package/chunks/{invoke-fetch-D9lpiAb-.js → invoke-fetch-pMN6iqup.js} +2 -3
  36. package/chunks/platform-types-CECrZkOF.d.ts +29 -0
  37. package/chunks/{public-runtime-modules-BqxAMJ9M.js → public-runtime-modules-2KfyI2qM.js} +5 -5
  38. package/chunks/{qix-DpvHvpx7.js → qix-BdNrIA4s.js} +19 -20
  39. package/chunks/{qix-chunk-entrypoint-BXZPnE6J.js → qix-chunk-entrypoint-L9RpWwLK.js} +52 -58
  40. package/chunks/{qix-CrqXv44x.d.ts → qix-types-y_di0roE.d.ts} +33 -115
  41. package/collections.d.ts +67 -144
  42. package/collections.js +3 -4
  43. package/conditions.d.ts +87 -190
  44. package/conditions.js +3 -4
  45. package/consumption.d.ts +35 -72
  46. package/consumption.js +3 -4
  47. package/core/ip-policies.d.ts +43 -93
  48. package/core/ip-policies.js +5 -6
  49. package/core.d.ts +1 -2
  50. package/core.js +5 -6
  51. package/csp-origins.d.ts +42 -85
  52. package/csp-origins.js +3 -4
  53. package/csrf-token.d.ts +6 -11
  54. package/csrf-token.js +3 -4
  55. package/data-alerts.d.ts +152 -325
  56. package/data-alerts.js +3 -4
  57. package/data-assets.d.ts +16 -31
  58. package/data-assets.js +3 -4
  59. package/data-connections.d.ts +123 -257
  60. package/data-connections.js +3 -4
  61. package/data-credentials.d.ts +36 -76
  62. package/data-credentials.js +3 -4
  63. package/data-files.d.ts +60 -121
  64. package/data-files.js +3 -4
  65. package/data-governance/data-products.d.ts +429 -0
  66. package/data-governance/data-products.js +212 -0
  67. package/data-governance.d.ts +13 -0
  68. package/data-governance.js +12 -0
  69. package/data-qualities.d.ts +11 -25
  70. package/data-qualities.js +3 -4
  71. package/data-sets.d.ts +28 -57
  72. package/data-sets.js +3 -4
  73. package/data-sources.d.ts +45 -97
  74. package/data-sources.js +3 -4
  75. package/data-stores.d.ts +53 -107
  76. package/data-stores.js +3 -4
  77. package/dcaas.d.ts +32 -67
  78. package/dcaas.js +3 -4
  79. package/di-projects.d.ts +111 -136
  80. package/di-projects.js +25 -4
  81. package/direct-access-agents.d.ts +29 -63
  82. package/direct-access-agents.js +3 -4
  83. package/encryption.d.ts +28 -59
  84. package/encryption.js +3 -4
  85. package/extensions.d.ts +35 -73
  86. package/extensions.js +3 -4
  87. package/global-types.d.ts +139 -1
  88. package/glossaries.d.ts +75 -158
  89. package/glossaries.js +3 -4
  90. package/groups.d.ts +58 -125
  91. package/groups.js +3 -4
  92. package/identity-providers.d.ts +148 -324
  93. package/identity-providers.js +3 -4
  94. package/index.d.ts +18 -4
  95. package/index.js +64 -19
  96. package/interceptors.d.ts +2 -3
  97. package/interceptors.js +104 -2
  98. package/invoke-fetch-types.d.ts +97 -1
  99. package/items.d.ts +85 -181
  100. package/items.js +3 -4
  101. package/knowledgebases.d.ts +137 -270
  102. package/knowledgebases.js +3 -4
  103. package/licenses.d.ts +71 -153
  104. package/licenses.js +3 -4
  105. package/lineage-graphs.d.ts +39 -85
  106. package/lineage-graphs.js +3 -4
  107. package/ml.d.ts +290 -621
  108. package/ml.js +3 -4
  109. package/notes.d.ts +9 -18
  110. package/notes.js +3 -4
  111. package/notifications.d.ts +14 -30
  112. package/notifications.js +3 -4
  113. package/oauth-clients.d.ts +98 -159
  114. package/oauth-clients.js +4 -5
  115. package/oauth-tokens.d.ts +16 -33
  116. package/oauth-tokens.js +3 -4
  117. package/package.json +6 -3
  118. package/qix.d.ts +46 -2
  119. package/qix.js +2 -3
  120. package/questions.d.ts +53 -110
  121. package/questions.js +3 -4
  122. package/quotas.d.ts +13 -26
  123. package/quotas.js +3 -4
  124. package/reload-tasks.d.ts +23 -46
  125. package/reload-tasks.js +3 -4
  126. package/reloads.d.ts +26 -52
  127. package/reloads.js +3 -4
  128. package/report-templates.d.ts +30 -63
  129. package/report-templates.js +3 -4
  130. package/reports.d.ts +111 -238
  131. package/reports.js +3 -4
  132. package/roles.d.ts +36 -77
  133. package/roles.js +3 -4
  134. package/sharing-tasks.d.ts +201 -427
  135. package/sharing-tasks.js +3 -4
  136. package/spaces.d.ts +71 -157
  137. package/spaces.js +3 -4
  138. package/tasks.d.ts +76 -164
  139. package/tasks.js +3 -4
  140. package/temp-contents.d.ts +17 -35
  141. package/temp-contents.js +3 -4
  142. package/tenant-settings.d.ts +298 -0
  143. package/tenant-settings.js +107 -0
  144. package/tenants.d.ts +31 -67
  145. package/tenants.js +3 -4
  146. package/themes.d.ts +27 -55
  147. package/themes.js +3 -4
  148. package/transports.d.ts +46 -106
  149. package/transports.js +3 -4
  150. package/ui-config.d.ts +8 -17
  151. package/ui-config.js +3 -4
  152. package/users.d.ts +80 -170
  153. package/users.js +3 -4
  154. package/web-integrations.d.ts +38 -83
  155. package/web-integrations.js +3 -4
  156. package/web-notifications.d.ts +14 -29
  157. package/web-notifications.js +3 -4
  158. package/webhooks.d.ts +77 -162
  159. package/webhooks.js +3 -4
  160. package/chunks/auth-XusKk8IA.js +0 -32
  161. package/chunks/auth-types-YrlH_R9f.d.ts +0 -416
  162. package/chunks/auth-types-h43TVDpB.js +0 -24
  163. package/chunks/global-types-CEVAJebk.js +0 -1
  164. /package/chunks/{dist-n3iOVn1W.js → dist-DR758NU5.js} +0 -0
  165. /package/chunks/{invoke-fetch-C1Z0RJYU.d.ts → invoke-fetch-DFc3yzaj.d.ts} +0 -0
  166. /package/chunks/{utils-vv-xFm06.js → utils-jkpLuYZR.js} +0 -0
  167. /package/chunks/{websocket-errors-CRTDTtBL.js → websocket-errors-C5U1tba-.js} +0 -0
package/banners.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./chunks/public-runtime-modules-BqxAMJ9M.js";
2
- import { n as invokeFetch, t as clearApiCache } from "./chunks/invoke-fetch-CckTK7bh.js";
1
+ import "./chunks/public-runtime-modules-2KfyI2qM.js";
2
+ import { n as invokeFetch, t as clearApiCache } from "./chunks/invoke-fetch-DMAi6Fg3.js";
3
3
 
4
4
  //#region src/public/rest/banners.ts
5
5
  /**
@@ -43,7 +43,6 @@ const bannersExport = {
43
43
  upsertBanners,
44
44
  clearCache
45
45
  };
46
- var banners_default = bannersExport;
47
46
 
48
47
  //#endregion
49
- export { clearCache, banners_default as default, getBanners, upsertBanners };
48
+ export { clearCache, bannersExport as default, getBanners, upsertBanners };
package/brands.d.ts CHANGED
@@ -1,24 +1,19 @@
1
- import { S as DownloadableBlob, y as ApiCallOptions } from "./chunks/auth-types-YrlH_R9f.js";
2
- import "./chunks/invoke-fetch-C1Z0RJYU.js";
1
+ import { ApiCallOptions, DownloadableBlob } from "./invoke-fetch-types.js";
2
+ import "./chunks/invoke-fetch-DFc3yzaj.js";
3
3
 
4
4
  //#region src/public/rest/brands.d.ts
5
5
  /**
6
6
  * A brand is a collection of assets for applying custom branding. Only a single brand can be active in a tenant.
7
7
  */
8
8
  type Brand = {
9
- readonly active?: boolean;
10
- /** The UTC timestamp when the brand was created. */
11
- readonly createdAt?: string;
12
- /** ID of a user that created the brand. */
9
+ readonly active?: boolean; /** The UTC timestamp when the brand was created. */
10
+ readonly createdAt?: string; /** ID of a user that created the brand. */
13
11
  readonly createdBy?: string;
14
- description: string;
15
- /** Collection of resources that make up the brand. */
12
+ description: string; /** Collection of resources that make up the brand. */
16
13
  files: BrandFile[];
17
14
  readonly id: string;
18
- name: string;
19
- /** The UTC timestamp when the brand was last updated. */
20
- readonly updatedAt?: string;
21
- /** ID of a user that last updated the brand. */
15
+ name: string; /** The UTC timestamp when the brand was last updated. */
16
+ readonly updatedAt?: string; /** ID of a user that last updated the brand. */
22
17
  readonly updatedBy?: string;
23
18
  };
24
19
  /**
@@ -34,11 +29,8 @@ type BrandFile = {
34
29
  * A JSON Patch document as defined in https://datatracker.ietf.org/doc/html/rfc6902.
35
30
  */
36
31
  type BrandPatch = {
37
- /** The operation to be performed. */
38
- op: "add" | "remove" | "replace";
39
- /** The path for the given resource field to patch. */
40
- path: "/name" | "/description";
41
- /** The value to be used for this operation. */
32
+ /** The operation to be performed. */op: "add" | "remove" | "replace"; /** The path for the given resource field to patch. */
33
+ path: "/name" | "/description"; /** The value to be used for this operation. */
42
34
  value?: string;
43
35
  };
44
36
  /**
@@ -93,8 +85,7 @@ type ErrorResponse500 = {
93
85
  traceId?: string;
94
86
  };
95
87
  type Link = {
96
- /** URL of a resource request. */
97
- href: string;
88
+ /** URL of a resource request. */href: string;
98
89
  };
99
90
  /**
100
91
  * Empty object inferring lack of active branding.
@@ -107,13 +98,9 @@ type NoActiveBrand = unknown;
107
98
  * @throws GetBrandsHttpError
108
99
  */
109
100
  declare function getBrands(query: {
110
- /** Cursor to previous. */
111
- endingBefore?: string;
112
- /** Maximum number of brands to retrieve. */
113
- limit?: number;
114
- /** Field to sort by, prefixed with -/+ to indicate the order. */
115
- sort?: "id" | "+id" | "-id" | "createdAt" | "+createdAt" | "-createdAt" | "updatedAt" | "+updatedAt" | "-updatedAt";
116
- /** Cursor to the next page. */
101
+ /** Cursor to previous. */endingBefore?: string; /** Maximum number of brands to retrieve. */
102
+ limit?: number; /** Field to sort by, prefixed with -/+ to indicate the order. */
103
+ sort?: "id" | "+id" | "-id" | "createdAt" | "+createdAt" | "-createdAt" | "updatedAt" | "+updatedAt" | "-updatedAt"; /** Cursor to the next page. */
117
104
  startingAfter?: string;
118
105
  }, options?: ApiCallOptions): Promise<GetBrandsHttpResponse>;
119
106
  type GetBrandsHttpResponse = {
@@ -151,15 +138,10 @@ type GetBrands500HttpError = {
151
138
  * @throws CreateBrandHttpError
152
139
  */
153
140
  declare function createBrand(body: {
154
- /** Description of the brand. */
155
- description?: string;
156
- /** The path and name of a properly formatted ICO file. Maximum size is 100 KB. */
157
- favIcon?: BodyInit;
158
- /** The path and name of a JPG or PNG file that will be adjusted to fit in a 'box' measuring 109px in width and 62 px in height while maintaining aspect ratio. Maximum size of 300 KB, but smaller is recommended. */
159
- logo?: BodyInit;
160
- /** Name of the brand. */
161
- name: string;
162
- /** The path and name of a JSON file to define brand style settings. Maximum size is 100 KB. This property is not currently operational. */
141
+ /** Description of the brand. */description?: string; /** The path and name of a properly formatted ICO file. Maximum size is 100 KB. */
142
+ favIcon?: BodyInit; /** The path and name of a JPG or PNG file that will be adjusted to fit in a 'box' measuring 109px in width and 62 px in height while maintaining aspect ratio. Maximum size of 300 KB, but smaller is recommended. */
143
+ logo?: BodyInit; /** Name of the brand. */
144
+ name: string; /** The path and name of a JSON file to define brand style settings. Maximum size is 100 KB. This property is not currently operational. */
163
145
  styles?: BodyInit;
164
146
  }, options?: ApiCallOptions): Promise<CreateBrandHttpResponse>;
165
147
  type CreateBrandHttpResponse = {
@@ -484,8 +466,7 @@ type GetBrandFile500HttpError = {
484
466
  * @throws CreateBrandFileHttpError
485
467
  */
486
468
  declare function createBrandFile(brandId: string, brandFileId: string, body: {
487
- /** The path and name of a file to upload. */
488
- file?: BodyInit;
469
+ /** The path and name of a file to upload. */file?: BodyInit;
489
470
  }, options?: ApiCallOptions): Promise<CreateBrandFileHttpResponse>;
490
471
  type CreateBrandFileHttpResponse = {
491
472
  data: BrandFile;
@@ -527,8 +508,7 @@ type CreateBrandFile500HttpError = {
527
508
  * @throws UpdateBrandFileHttpError
528
509
  */
529
510
  declare function updateBrandFile(brandId: string, brandFileId: string, body: {
530
- /** A file to upload. */
531
- file?: BodyInit;
511
+ /** A file to upload. */file?: BodyInit;
532
512
  }, options?: ApiCallOptions): Promise<UpdateBrandFileHttpResponse>;
533
513
  type UpdateBrandFileHttpResponse = {
534
514
  data: BrandFile;
package/brands.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./chunks/public-runtime-modules-BqxAMJ9M.js";
2
- import { n as invokeFetch, t as clearApiCache } from "./chunks/invoke-fetch-CckTK7bh.js";
1
+ import "./chunks/public-runtime-modules-2KfyI2qM.js";
2
+ import { n as invokeFetch, t as clearApiCache } from "./chunks/invoke-fetch-DMAi6Fg3.js";
3
3
 
4
4
  //#region src/public/rest/brands.ts
5
5
  /**
@@ -222,7 +222,6 @@ const brandsExport = {
222
222
  updateBrandFile,
223
223
  clearCache
224
224
  };
225
- var brands_default = brandsExport;
226
225
 
227
226
  //#endregion
228
- export { activateBrand, clearCache, createBrand, createBrandFile, deactivateBrand, brands_default as default, deleteBrand, deleteBrandFile, getActiveBrand, getBrand, getBrandFile, getBrands, patchBrand, updateBrandFile };
227
+ export { activateBrand, clearCache, createBrand, createBrandFile, deactivateBrand, brandsExport as default, deleteBrand, deleteBrandFile, getActiveBrand, getBrand, getBrandFile, getBrands, patchBrand, updateBrandFile };
@@ -0,0 +1,31 @@
1
+ import { C as AuthorizationError, E as UnexpectedAuthTypeError, S as unregisterHostConfig, T as InvalidHostConfigError, _ as registerHostConfig, a as getRestCallAuthParams, b as toValidLocationUrl, c as handleAuthenticationError, d as logout, f as normalizeHostConfig, g as registerAuthModule, h as onPageRedirectStarted, i as getDefaultHostConfig, l as isHostCrossOrigin, m as onPageRedirectRequested, n as determineAuthType, o as getWebResourceAuthParams, p as onFatalAuthError, r as getAccessToken, s as getWebSocketAuthParams, u as isWindows, v as serializeHostConfig, w as InvalidAuthTypeError, x as toValidWebsocketLocationUrl, y as setDefaultHostConfig } from "./boot-interceptors-DqRxTczb.js";
2
+
3
+ //#region src/auth/auth.ts
4
+ /**
5
+ * Provides functionalities for authentication with Qlik backends.
6
+ */
7
+ const auth = {
8
+ determineAuthType,
9
+ getDefaultHostConfig,
10
+ getRestCallAuthParams,
11
+ getWebResourceAuthParams,
12
+ getWebSocketAuthParams,
13
+ handleAuthenticationError,
14
+ isHostCrossOrigin,
15
+ isWindows,
16
+ logout,
17
+ registerAuthModule,
18
+ registerHostConfig,
19
+ serializeHostConfig,
20
+ setDefaultHostConfig,
21
+ toValidLocationUrl,
22
+ toValidWebsocketLocationUrl,
23
+ unregisterHostConfig,
24
+ normalizeHostConfig,
25
+ onFatalAuthError,
26
+ onPageRedirectRequested,
27
+ onPageRedirectStarted
28
+ };
29
+
30
+ //#endregion
31
+ export { 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 };
@@ -1,5 +1,6 @@
1
- import { a as sortKeys, i as isNode, r as isBrowser, t as cleanFalsyValues } from "./utils-vv-xFm06.js";
2
- import { n as hostConfigCommonProperties, t as authTypesThatCanBeOmitted } from "./auth-types-h43TVDpB.js";
1
+ import { a as sortKeys, i as isNode, r as isBrowser, t as cleanFalsyValues } from "./utils-jkpLuYZR.js";
2
+ import { authTypesThatCanBeOmitted, hostConfigCommonProperties } from "../auth-types.js";
3
+ import { getInterceptors } from "../interceptors.js";
3
4
 
4
5
  //#region src/platform/platform-functions.ts
5
6
  const getPlatform = async (options = {}) => {
@@ -137,9 +138,9 @@ const HEX_ALPHABET = "0123456789abcdef";
137
138
  function generateRandomFromAlphabet(alphabet, length) {
138
139
  const bytes = new Uint8Array(length);
139
140
  globalThis.crypto.getRandomValues(bytes);
140
- let result$1 = "";
141
- for (let i = 0; i < length; i++) result$1 += alphabet[bytes[i] % alphabet.length];
142
- return result$1;
141
+ let result = "";
142
+ for (let i = 0; i < length; i++) result += alphabet[bytes[i] % alphabet.length];
143
+ return result;
143
144
  }
144
145
  /**
145
146
  * Method helper for generating a random string [a-zA-Z0-9\-_]{length}
@@ -366,9 +367,9 @@ function deleteFromSessionStorage(topic, names) {
366
367
  }
367
368
  function loadAndDeleteFromSessionStorage(topic, name) {
368
369
  const id = `${storagePrefix}-${topic}-${name}`;
369
- const result$1 = sessionStorage.getItem(id) || void 0;
370
+ const result = sessionStorage.getItem(id) || void 0;
370
371
  sessionStorage.removeItem(id);
371
- return result$1;
372
+ return result;
372
373
  }
373
374
  function loadOauthTokensFromStorage(topic, accessTokenStorage) {
374
375
  let accessToken;
@@ -445,8 +446,8 @@ function toPerformInteractiveLoginFunction(performInteractiveLogin) {
445
446
  }
446
447
  return performInteractiveLogin;
447
448
  }
448
- function lookupGetAccessFn(getAccessToken$1) {
449
- return globalThis[getAccessToken$1];
449
+ function lookupGetAccessFn(getAccessToken) {
450
+ return globalThis[getAccessToken];
450
451
  }
451
452
  function lookupInteractiveLoginFn(name) {
452
453
  return globalThis[name];
@@ -460,13 +461,13 @@ function toQueryString(queryParams) {
460
461
  return queryParamsKeys.map((k) => `${k}=${queryParams[k]}`).join("&");
461
462
  }
462
463
  function byteArrayToBase64(hashArray) {
463
- let result$1 = "";
464
+ let result = "";
464
465
  if (isBrowser()) {
465
466
  const byteArrayToString = String.fromCharCode.apply(null, hashArray);
466
- result$1 = btoa(byteArrayToString);
467
- } else if (isNode()) result$1 = Buffer.from(hashArray).toString("base64");
467
+ result = btoa(byteArrayToString);
468
+ } else if (isNode()) result = Buffer.from(hashArray).toString("base64");
468
469
  else throw new Error("Environment not supported for oauth2 authentication");
469
- return result$1;
470
+ return result;
470
471
  }
471
472
  /**
472
473
  * @param message string to hash
@@ -650,16 +651,16 @@ async function getOAuthTokensForBrowser(hostConfig) {
650
651
  if (hostConfig.performInteractiveLogin) {
651
652
  let usedRedirectUri;
652
653
  try {
653
- const verifier$1 = generateRandomString(128);
654
+ const verifier = generateRandomString(128);
654
655
  const originalState = generateRandomString(43);
655
- const { code: code$1, state } = extractCodeAndState(await toPerformInteractiveLoginFunction(hostConfig.performInteractiveLogin)({ getLoginUrl: async ({ redirectUri }) => {
656
+ const { code, state } = extractCodeAndState(await toPerformInteractiveLoginFunction(hostConfig.performInteractiveLogin)({ getLoginUrl: async ({ redirectUri }) => {
656
657
  usedRedirectUri = redirectUri;
657
- return createInteractiveLoginUrl(hostConfig, redirectUri, originalState, verifier$1);
658
+ return createInteractiveLoginUrl(hostConfig, redirectUri, originalState, verifier);
658
659
  } }));
659
660
  if (!usedRedirectUri) return errorMessageToAuthData("No redirect uri provided");
660
661
  if (originalState !== state) return errorMessageToAuthData("State returned by custom interactive login function does not match original");
661
- if (!code$1) return errorMessageToAuthData("No code found in response from custom interactive login function");
662
- return await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code$1, verifier$1, usedRedirectUri);
662
+ if (!code) return errorMessageToAuthData("No code found in response from custom interactive login function");
663
+ return await exchangeCodeAndVerifierForAccessTokenData(hostConfig, code, verifier, usedRedirectUri);
663
664
  } catch (error) {
664
665
  return {
665
666
  accessToken: void 0,
@@ -958,11 +959,11 @@ function encodeQueryParams(query) {
958
959
  * @private
959
960
  */
960
961
  function applyPathVariables(pathTemplate, pathVariables) {
961
- let result$1 = pathTemplate;
962
+ let result = pathTemplate;
962
963
  if (pathVariables) Object.keys(pathVariables).forEach((key) => {
963
- result$1 = result$1.replace(`{${key}}`, pathVariables[key]);
964
+ result = result.replace(`{${key}}`, pathVariables[key]);
964
965
  });
965
- return result$1;
966
+ return result;
966
967
  }
967
968
  /**
968
969
  * Join url and query to a complete url
@@ -1036,6 +1037,7 @@ async function invokeXHR(completeUrl, { method, headers, credentials, keepalive,
1036
1037
  //#region src/invoke-fetch/internal/response-cache.ts
1037
1038
  const responseCaches = {};
1038
1039
  globalThis.__API_CACHE__DO_NOT_USE_OR_YOU_WILL_BE_FIRED = responseCaches;
1040
+ if (globalThis.QlikMain?.INTERNAL__DO_NOT_USE) globalThis.QlikMain.INTERNAL__DO_NOT_USE.apiCache = responseCaches;
1039
1041
  let defaultCacheTime = 1e3 * 60 * 10;
1040
1042
  /**
1041
1043
  * The global namespace is used as a fallback if an entry is not found in a specific cache.
@@ -1193,14 +1195,14 @@ function clone(value) {
1193
1195
  */
1194
1196
  function cloneResultPromise(value) {
1195
1197
  return value.then((resp) => {
1196
- const result$1 = {
1198
+ const result = {
1197
1199
  data: clone(resp.data),
1198
1200
  headers: resp.headers,
1199
1201
  status: resp.status
1200
1202
  };
1201
- if (resp.next) result$1.next = resp.next;
1202
- if (resp.prev) result$1.prev = resp.prev;
1203
- return result$1;
1203
+ if (resp.next) result.next = resp.next;
1204
+ if (resp.prev) result.prev = resp.prev;
1205
+ return result;
1204
1206
  });
1205
1207
  }
1206
1208
  /**
@@ -1471,10 +1473,10 @@ function getServiceOverrideHeaderFromLocalStorage() {
1471
1473
  }
1472
1474
  /** Convert a Blob to a DownloadableBlob */
1473
1475
  function toDownloadableBlob(blob, name) {
1474
- const result$1 = blob;
1475
- if (name) result$1.download = (filename = name) => download(blob, filename);
1476
- else result$1.download = (filename) => download(blob, filename);
1477
- return result$1;
1476
+ const result = blob;
1477
+ if (name) result.download = (filename = name) => download(blob, filename);
1478
+ else result.download = (filename) => download(blob, filename);
1479
+ return result;
1478
1480
  }
1479
1481
  /** Convenience-function for downloading a blob. */
1480
1482
  async function download(blob, filename) {
@@ -1500,8 +1502,8 @@ const defaultUserAgent = "qmfe-api/latest";
1500
1502
  * @param api Name of api to call. Will be used for caching responses.
1501
1503
  * @param invokeFetchProps InvokeFetchProperties
1502
1504
  */
1503
- async function invokeFetch(api, props, interceptors$1) {
1504
- const effectiveInterceptors = interceptors$1 || getInterceptors();
1505
+ async function invokeFetch(api, props, interceptors) {
1506
+ const effectiveInterceptors = interceptors || getInterceptors();
1505
1507
  const invokeFetchFinal = (reqeust) => invokeFetchIntercepted(api, reqeust);
1506
1508
  return (effectiveInterceptors || []).reduce((proceed, interceptor) => (request) => interceptor(request, proceed), invokeFetchFinal)(props);
1507
1509
  }
@@ -1664,16 +1666,16 @@ function internalGetCredentialsForCookieAuth(hostConfig) {
1664
1666
  if (isHostCrossOrigin(hostConfig)) return "include";
1665
1667
  return "same-origin";
1666
1668
  }
1667
- async function resolveTokenIfPresent(getAccessToken$1) {
1668
- if (typeof getAccessToken$1 === "function") return getAccessToken$1();
1669
- if (typeof getAccessToken$1 === "string") {
1670
- const accessTokenFn = lookupGlobalGetAccessTokenFn(getAccessToken$1);
1671
- if (typeof accessTokenFn !== "function") throw new Error(`getAccessToken function "${getAccessToken$1}" not found on globalThis. Please make sure it is defined.`);
1669
+ async function resolveTokenIfPresent(getAccessToken) {
1670
+ if (typeof getAccessToken === "function") return getAccessToken();
1671
+ if (typeof getAccessToken === "string") {
1672
+ const accessTokenFn = lookupGlobalGetAccessTokenFn(getAccessToken);
1673
+ if (typeof accessTokenFn !== "function") throw new Error(`getAccessToken function "${getAccessToken}" not found on globalThis. Please make sure it is defined.`);
1672
1674
  return accessTokenFn();
1673
1675
  }
1674
1676
  }
1675
- function lookupGlobalGetAccessTokenFn(getAccessToken$1) {
1676
- return globalThis[getAccessToken$1];
1677
+ function lookupGlobalGetAccessTokenFn(getAccessToken) {
1678
+ return globalThis[getAccessToken];
1677
1679
  }
1678
1680
 
1679
1681
  //#endregion
@@ -1918,14 +1920,14 @@ const xrfKeys = {};
1918
1920
  * @returns {string} 16 character long xrf-key
1919
1921
  */
1920
1922
  function createXrfKey() {
1921
- let result$1 = "";
1923
+ let result = "";
1922
1924
  for (let i = 0; i < 16; i += 1) {
1923
1925
  const j = Math.floor(Math.random() * 62);
1924
- if (j < 10) result$1 += j;
1925
- else if (j > 9 && j < 36) result$1 += String.fromCharCode(j + 55);
1926
- else result$1 += String.fromCharCode(j + 61);
1926
+ if (j < 10) result += j;
1927
+ else if (j > 9 && j < 36) result += String.fromCharCode(j + 55);
1928
+ else result += String.fromCharCode(j + 61);
1927
1929
  }
1928
- return result$1;
1930
+ return result;
1929
1931
  }
1930
1932
  function getXrfKey(hostConfig) {
1931
1933
  const locationUrl = toValidLocationUrl(hostConfig);
@@ -2397,12 +2399,12 @@ async function getWebResourceAuthParams(props) {
2397
2399
  */
2398
2400
  async function handleAuthenticationError(props) {
2399
2401
  const hostConfigToUse = resolveHostConfig(props.hostConfig);
2400
- const result$1 = await (await getAuthModule(hostConfigToUse)).handleAuthenticationError({
2402
+ const result = await (await getAuthModule(hostConfigToUse)).handleAuthenticationError({
2401
2403
  ...props,
2402
2404
  hostConfig: hostConfigToUse
2403
2405
  });
2404
- const willRetry = props.canRetry && result$1.retry;
2405
- const willHangUntilANewPageIsLoaded = result$1.preventDefault;
2406
+ const willRetry = props.canRetry && result.retry;
2407
+ const willHangUntilANewPageIsLoaded = result.preventDefault;
2406
2408
  if (!willRetry && !willHangUntilANewPageIsLoaded) {
2407
2409
  const { status, errorBody } = props;
2408
2410
  emitFatalAuthError(hostConfigToUse, normalizeInbandAuthError({
@@ -2410,7 +2412,7 @@ async function handleAuthenticationError(props) {
2410
2412
  errorBody
2411
2413
  }));
2412
2414
  }
2413
- return result$1;
2415
+ return result;
2414
2416
  }
2415
2417
  /**
2416
2418
  * Returns a record of headers and a record of query params that needs to be added to outgoing rest calls
@@ -2661,106 +2663,4 @@ function populateCacheFrom(responses, pathsToInclude, serializedHostConfig, loca
2661
2663
  }
2662
2664
 
2663
2665
  //#endregion
2664
- //#region src/interceptors/interceptors.ts
2665
- let GLOBAL_INTERCEPTORS;
2666
- function createInterceptors() {
2667
- const interceptors$1 = [...GLOBAL_INTERCEPTORS?.getInterceptors() || []];
2668
- return {
2669
- addInterceptor: (interceptor) => {
2670
- interceptors$1.push(interceptor);
2671
- return interceptor;
2672
- },
2673
- removeInterceptor: (interceptor) => {
2674
- const index = interceptors$1.indexOf(interceptor);
2675
- let removed;
2676
- if (index !== -1) removed = interceptors$1.splice(index, 1)[0];
2677
- return removed || null;
2678
- },
2679
- getInterceptors: () => interceptors$1
2680
- };
2681
- }
2682
- let addDefaultInterceptorsRun = false;
2683
- function addDefaultInterceptors() {
2684
- if (addDefaultInterceptorsRun) return;
2685
- if (isBrowser()) {
2686
- const readFlagsFromUrlQuery = () => {
2687
- const featuresParam = new URLSearchParams(window.location.search).get("features");
2688
- if (!featuresParam) return {};
2689
- return featuresParam.split(",").map((item) => item.trim()).reduce((map, obj) => {
2690
- const value = !obj.startsWith("!");
2691
- const key = value ? obj : obj.substring(1);
2692
- map[key] = value;
2693
- return map;
2694
- }, {});
2695
- };
2696
- const readFlagsFromLocalStorage = () => {
2697
- try {
2698
- const featuresParam = localStorage.getItem("qcs-features");
2699
- if (featuresParam) return JSON.parse(featuresParam);
2700
- return {};
2701
- } catch {
2702
- return {};
2703
- }
2704
- };
2705
- const flagsFromUrl = readFlagsFromUrlQuery();
2706
- const flagsFromLocalStorage = readFlagsFromLocalStorage();
2707
- const featuresInterceptor = async (request, proceed) => {
2708
- let resultPromise;
2709
- if (request.pathTemplate === "/api/v1/features") {
2710
- resultPromise = proceed(request);
2711
- const result$1 = await resultPromise;
2712
- return {
2713
- ...result$1,
2714
- data: {
2715
- ...result$1.data || {},
2716
- ...flagsFromLocalStorage,
2717
- ...flagsFromUrl
2718
- }
2719
- };
2720
- }
2721
- return proceed(request);
2722
- };
2723
- GLOBAL_INTERCEPTORS.addInterceptor(featuresInterceptor);
2724
- GLOBAL_INTERCEPTORS.addInterceptor(coreBootInterceptor);
2725
- }
2726
- addDefaultInterceptorsRun = true;
2727
- }
2728
- /**
2729
- * The global interceptor stack
2730
- */
2731
- GLOBAL_INTERCEPTORS = createInterceptors();
2732
- /**
2733
- * Adds an interceptor to the global interceptor stack
2734
- * Returns the newly added interceptor
2735
- * @param interceptor the interceptor to add
2736
- * @returns the newly added interceptor
2737
- */
2738
- function addInterceptor(interceptor) {
2739
- return GLOBAL_INTERCEPTORS.addInterceptor(interceptor);
2740
- }
2741
- /**
2742
- * Removes an interceptor from the global interceptor stack
2743
- * @param interceptor the interceptor remove
2744
- */
2745
- function removeInterceptor(interceptor) {
2746
- return GLOBAL_INTERCEPTORS.removeInterceptor(interceptor);
2747
- }
2748
- /**
2749
- * Gets all registered interceptors
2750
- */
2751
- function getInterceptors() {
2752
- return GLOBAL_INTERCEPTORS.getInterceptors();
2753
- }
2754
- /**
2755
- * The interceptors API
2756
- */
2757
- const interceptors = {
2758
- addInterceptor,
2759
- removeInterceptor,
2760
- getInterceptors,
2761
- createInterceptors
2762
- };
2763
- var interceptors_default = interceptors;
2764
-
2765
- //#endregion
2766
- export { 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_default 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 };
2666
+ export { appendQueryToUrl as A, AuthorizationError as C, clearApiCache as D, UnexpectedAuthTypeError as E, getPlatform as F, InvokeFetchError as M, exposeInternalApiOnWindow as N, invokeFetch as O, generateRandomString as P, unregisterHostConfig as S, InvalidHostConfigError as T, registerHostConfig as _, getRestCallAuthParams as a, toValidLocationUrl as b, handleAuthenticationError as c, logout as d, normalizeHostConfig as f, registerAuthModule as g, onPageRedirectStarted as h, getDefaultHostConfig as i, EncodingError as j, parseFetchResponse as k, isHostCrossOrigin as l, onPageRedirectRequested as m, determineAuthType as n, getWebResourceAuthParams as o, onFatalAuthError as p, getAccessToken as r, getWebSocketAuthParams as s, coreBootInterceptor as t, isWindows as u, serializeHostConfig as v, InvalidAuthTypeError as w, toValidWebsocketLocationUrl as x, setDefaultHostConfig as y };
@@ -1,6 +1,6 @@
1
- //#region rolldown:runtime
1
+ //#region \0rolldown/runtime.js
2
2
  var __defProp = Object.defineProperty;
3
- var __exportAll = (all, symbols) => {
3
+ var __exportAll = (all, no_symbols) => {
4
4
  let target = {};
5
5
  for (var name in all) {
6
6
  __defProp(target, name, {
@@ -8,7 +8,7 @@ var __exportAll = (all, symbols) => {
8
8
  enumerable: true
9
9
  });
10
10
  }
11
- if (symbols) {
11
+ if (!no_symbols) {
12
12
  __defProp(target, Symbol.toStringTag, { value: "Module" });
13
13
  }
14
14
  return target;
@@ -1,8 +1,8 @@
1
- import { r as isBrowser } from "./utils-vv-xFm06.js";
2
- import { n as getInvokeFetchRuntimeModule } from "./public-runtime-modules-BqxAMJ9M.js";
1
+ import { r as isBrowser } from "./utils-jkpLuYZR.js";
2
+ import { n as getInvokeFetchRuntimeModule } from "./public-runtime-modules-2KfyI2qM.js";
3
3
 
4
4
  //#region src/public/invoke-fetch.ts
5
- const defaultUserAgent = "qlik-api/2.3.1";
5
+ const defaultUserAgent = "qlik-api/2.4.0";
6
6
  async function invokeFetch(api, props) {
7
7
  const hostConfig = props.options?.hostConfig;
8
8
  let userAgent;
@@ -1,4 +1,4 @@
1
- import { I as EncodingError, L as InvokeFetchError, M as clearApiCache, N as invokeFetch, P as parseFetchResponse } from "./interceptors-2VSXImC9.js";
1
+ import { D as clearApiCache, M as InvokeFetchError, O as invokeFetch, j as EncodingError, k as parseFetchResponse } from "./boot-interceptors-DqRxTczb.js";
2
2
 
3
3
  //#region src/invoke-fetch/invoke-fetch.ts
4
4
  /**
@@ -13,7 +13,6 @@ const invokeFetchExp = {
13
13
  clearApiCache,
14
14
  parseFetchResponse
15
15
  };
16
- var invoke_fetch_default = invokeFetchExp;
17
16
 
18
17
  //#endregion
19
- export { EncodingError, InvokeFetchError, clearApiCache, invoke_fetch_default as default, invokeFetch, parseFetchResponse };
18
+ export { EncodingError, InvokeFetchError, clearApiCache, invokeFetchExp as default, invokeFetch, parseFetchResponse };
@@ -0,0 +1,29 @@
1
+ //#region src/platform/platform-types.d.ts
2
+ /** Data is accessible on `/resources/autogenerated/product-info.json` on any deployment */
3
+ type ProductInfo = {
4
+ composition?: {
5
+ contentHash?: string;
6
+ senseId: string;
7
+ releaseLabel?: string;
8
+ originalClassName?: string;
9
+ productName?: string;
10
+ version?: string;
11
+ copyrightYearRange?: string;
12
+ deploymentEnvironment?: string;
13
+ deploymentType?: "qliksenseserver" | "qliksensedesktop" | "QlikSenseMobile" | "qlikcloudservices" | "cloud-console";
14
+ provider?: string;
15
+ };
16
+ externalUrls: {
17
+ contentHash?: string;
18
+ originalClassName?: string;
19
+ personalUpgradeBase: string;
20
+ cloudUploadUrl: string;
21
+ serverHelpBaseUrl: string;
22
+ personalHelpBaseUrl: string;
23
+ personalUpgradeUrl: string;
24
+ qlikWebPageUrl: string;
25
+ cloudBaseUrl: string;
26
+ };
27
+ };
28
+ //#endregion
29
+ export { ProductInfo as t };
@@ -1,4 +1,4 @@
1
- import { i as isNode$1 } from "./utils-vv-xFm06.js";
1
+ import { i as isNode$1 } from "./utils-jkpLuYZR.js";
2
2
 
3
3
  //#region src/public/public-runtime-modules.ts
4
4
  const isNode = isNode$1();
@@ -6,24 +6,24 @@ const importRuntimeModulePromise = (async () => {
6
6
  if (isNode) return () => {
7
7
  throw new Error("importRuntimeModule cannot be used in a Node.js context");
8
8
  };
9
- return (await import("./dist-n3iOVn1W.js")).importRuntimeModule;
9
+ return (await import("./dist-DR758NU5.js")).importRuntimeModule;
10
10
  })();
11
11
  /**
12
12
  * @param hostConfig
13
13
  * @returns
14
14
  */
15
15
  async function getAuthRuntimeModule(hostConfig) {
16
- if (isNode) return import("./auth-XusKk8IA.js");
16
+ if (isNode) return import("./auth-B8lJw7rm.js");
17
17
  return (await importRuntimeModulePromise)("auth@v1", hostConfig);
18
18
  }
19
19
  async function getQixRuntimeModule(hostConfig) {
20
20
  await getAuthRuntimeModule(hostConfig);
21
- if (isNode) return import("./qix-DpvHvpx7.js");
21
+ if (isNode) return import("./qix-BdNrIA4s.js");
22
22
  return (await importRuntimeModulePromise)("qix@v1", hostConfig);
23
23
  }
24
24
  async function getInvokeFetchRuntimeModule(hostConfig) {
25
25
  await getAuthRuntimeModule(hostConfig);
26
- if (isNode) return import("./invoke-fetch-D9lpiAb-.js");
26
+ if (isNode) return import("./invoke-fetch-pMN6iqup.js");
27
27
  return (await importRuntimeModulePromise)("invoke-fetch@v1", hostConfig);
28
28
  }
29
29