@qlik/api 0.0.15 → 0.1.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 (135) hide show
  1. package/README.md +1 -1
  2. package/api-keys.js +25 -25
  3. package/apps.js +97 -97
  4. package/audits.js +23 -23
  5. package/auth.js +14 -14
  6. package/automations.js +47 -47
  7. package/brands.js +35 -35
  8. package/chunks/4HB3TAEO.js +4 -4
  9. package/chunks/{EHAANYDL.mjs → 4V5AAWUI.js} +3 -3
  10. package/chunks/{O4EAKEIN.mjs → D62LI5YU.js} +1 -1
  11. package/chunks/{6WX5AGKQ.mjs → L2BJNKLV.js} +2 -2
  12. package/chunks/{3YV6X7S6.mjs → LHCJKIEO.js} +1 -1
  13. package/chunks/OPRGGO4C.js +8 -8
  14. package/chunks/{HHOVS7QC.mjs → RNLZBOJU.js} +3 -3
  15. package/chunks/{BYD63JCG.mjs → SIU6HO6B.js} +5 -3
  16. package/chunks/{6AD3HYSF.mjs → TFSRDRRS.js} +1 -1
  17. package/chunks/{HOCTJESP.mjs → VK2CODYY.js} +2 -2
  18. package/chunks/{UKVTBYP6.mjs → XOVMZWDC.js} +2 -2
  19. package/collections.js +33 -33
  20. package/csp-origins.js +23 -23
  21. package/data-assets.js +21 -21
  22. package/data-connections.d.ts +97 -61
  23. package/data-connections.js +29 -29
  24. package/data-credentials.d.ts +3 -2
  25. package/data-credentials.js +19 -19
  26. package/data-files.js +35 -35
  27. package/docs/authentication.md +5 -5
  28. package/docs/examples/fetch-spaces.md +1 -15
  29. package/docs/examples/open-without-data.md +1 -1
  30. package/docs/examples/show-sheet-list.md +1 -1
  31. package/docs/features.md +1 -1
  32. package/extensions.js +25 -25
  33. package/glossaries.js +59 -59
  34. package/groups.d.ts +0 -3
  35. package/groups.js +27 -27
  36. package/identity-providers.js +27 -27
  37. package/index.js +53 -53
  38. package/items.js +27 -27
  39. package/licenses.js +29 -29
  40. package/package.json +36 -232
  41. package/qix.d.ts +1 -1
  42. package/qix.js +10 -10
  43. package/quotas.js +15 -15
  44. package/reload-tasks.js +21 -21
  45. package/reloads.js +19 -19
  46. package/roles.js +15 -15
  47. package/spaces.js +35 -35
  48. package/temp-contents.js +17 -17
  49. package/tenants.js +23 -23
  50. package/themes.js +25 -25
  51. package/transports.js +23 -23
  52. package/users.d.ts +1 -3
  53. package/users.js +31 -31
  54. package/web-integrations.js +21 -21
  55. package/web-notifications.js +23 -23
  56. package/webhooks.js +31 -31
  57. package/api-keys.d.mts +0 -336
  58. package/api-keys.mjs +0 -80
  59. package/apps.d.mts +0 -2431
  60. package/apps.mjs +0 -398
  61. package/audits.d.mts +0 -286
  62. package/audits.mjs +0 -64
  63. package/auth-types-nnUcWhuU.d.mts +0 -98
  64. package/auth.d.mts +0 -26
  65. package/auth.mjs +0 -14
  66. package/automations.d.mts +0 -682
  67. package/automations.mjs +0 -173
  68. package/brands.d.mts +0 -670
  69. package/brands.mjs +0 -123
  70. package/chunks/2YWCEGTS.js +0 -21
  71. package/chunks/34ZKUFEA.js +0 -41
  72. package/chunks/4WHZ4EIW.js +0 -57
  73. package/chunks/B4VPD3ZT.js +0 -574
  74. package/chunks/BM4OSDRZ.js +0 -17
  75. package/chunks/DCXUEDOW.mjs +0 -67
  76. package/chunks/MTAQE4WC.js +0 -10411
  77. package/chunks/PLOSYUG2.js +0 -25
  78. package/chunks/URIW2U5M.js +0 -17
  79. package/chunks/VSY5YIQY.mjs +0 -11
  80. package/chunks/WOYJLK4Y.js +0 -1623
  81. package/collections.d.mts +0 -581
  82. package/collections.mjs +0 -114
  83. package/csp-origins.d.mts +0 -273
  84. package/csp-origins.mjs +0 -69
  85. package/data-assets.d.mts +0 -205
  86. package/data-assets.mjs +0 -66
  87. package/data-connections.d.mts +0 -558
  88. package/data-connections.mjs +0 -103
  89. package/data-credentials.d.mts +0 -203
  90. package/data-credentials.mjs +0 -59
  91. package/data-files.d.mts +0 -562
  92. package/data-files.mjs +0 -123
  93. package/extensions.d.mts +0 -293
  94. package/extensions.mjs +0 -77
  95. package/global.types-5iFvFJvX.d.mts +0 -115
  96. package/glossaries.d.mts +0 -1173
  97. package/glossaries.mjs +0 -237
  98. package/groups.d.mts +0 -434
  99. package/groups.mjs +0 -88
  100. package/identity-providers.d.mts +0 -550
  101. package/identity-providers.mjs +0 -83
  102. package/index.d.mts +0 -142
  103. package/index.mjs +0 -716
  104. package/items.d.mts +0 -535
  105. package/items.mjs +0 -87
  106. package/licenses.d.mts +0 -459
  107. package/licenses.mjs +0 -92
  108. package/qix.d.mts +0 -11629
  109. package/qix.mjs +0 -10
  110. package/quotas.d.mts +0 -112
  111. package/quotas.mjs +0 -32
  112. package/reload-tasks.d.mts +0 -227
  113. package/reload-tasks.mjs +0 -62
  114. package/reloads.d.mts +0 -207
  115. package/reloads.mjs +0 -46
  116. package/roles.d.mts +0 -175
  117. package/roles.mjs +0 -31
  118. package/spaces.d.mts +0 -562
  119. package/spaces.mjs +0 -124
  120. package/temp-contents.d.mts +0 -167
  121. package/temp-contents.mjs +0 -41
  122. package/tenants.d.mts +0 -300
  123. package/tenants.mjs +0 -73
  124. package/themes.d.mts +0 -268
  125. package/themes.mjs +0 -77
  126. package/transports.d.mts +0 -319
  127. package/transports.mjs +0 -65
  128. package/users.d.mts +0 -631
  129. package/users.mjs +0 -104
  130. package/web-integrations.d.mts +0 -274
  131. package/web-integrations.mjs +0 -62
  132. package/web-notifications.d.mts +0 -250
  133. package/web-notifications.mjs +0 -69
  134. package/webhooks.d.mts +0 -445
  135. package/webhooks.mjs +0 -104
@@ -1,574 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
-
5
-
6
-
7
- var _WOYJLK4Yjs = require('./WOYJLK4Y.js');
8
- require('./4HB3TAEO.js');
9
-
10
- // src/qix/session/shared-sessions.ts
11
- var globalEventListeners = /* @__PURE__ */ new Set();
12
- function globalOnWebSocketEvent(listener) {
13
- globalEventListeners.add(listener);
14
- return () => {
15
- globalEventListeners.delete(listener);
16
- };
17
- }
18
- var globalStateListeners = /* @__PURE__ */ new Set();
19
- function globalOnStateChange(listener) {
20
- globalStateListeners.add(listener);
21
- return () => {
22
- globalStateListeners.delete(listener);
23
- };
24
- }
25
- async function resumeAll() {
26
- const promises = [];
27
- Object.keys(globalState.sessionStates).forEach((key) => {
28
- const state = globalState.sessionStates[key];
29
- if (state === "suspended") {
30
- promises.push(sharedSessions[key].resume());
31
- }
32
- });
33
- await Promise.all(promises);
34
- return Promise.resolve();
35
- }
36
- var initialActions = {};
37
- var sharedSessions = {};
38
- function toGlobalAppSessionId({ appId, identity, hostConfig, withoutData }) {
39
- const locationUrl = _WOYJLK4Yjs.toValidWebsocketLocationUrl.call(void 0, hostConfig);
40
- return (identity ? locationUrl + "/" + appId + "/" + identity : locationUrl + "/" + appId) + (withoutData ? "/withoutData" : "");
41
- }
42
- async function runPendingInitialActions(initialActionsForApp, sharedSession, doc) {
43
- for (const initialAction of initialActionsForApp) {
44
- if (sharedSession.alreadyExecutedInitialActions.indexOf(initialAction) === -1) {
45
- sharedSession.alreadyExecutedInitialActions.push(initialAction);
46
- await initialAction(doc);
47
- }
48
- }
49
- }
50
- async function addInitialSharedSessionCreationAction(openAppSessionProps, action) {
51
- const key = toGlobalAppSessionId(openAppSessionProps);
52
- let initialActionArray = initialActions[key];
53
- if (!initialActionArray) {
54
- initialActionArray = initialActions[key] = [];
55
- }
56
- initialActionArray.push(action);
57
- const existingSharedSession = sharedSessions[key];
58
- if (existingSharedSession) {
59
- const doc = await existingSharedSession.docPromise;
60
- if (doc) {
61
- runPendingInitialActions(initialActionArray, existingSharedSession, doc);
62
- }
63
- }
64
- }
65
- function listenForWindowsAuthenticationInformation(session) {
66
- let resolveAuthSuggestedInWebsocket;
67
- const authSuggestedInWebsocket = new Promise((resolve, reject) => {
68
- resolveAuthSuggestedInWebsocket = resolve;
69
- setTimeout(() => {
70
- resolve(void 0);
71
- }, 2e3);
72
- });
73
- session.on(
74
- "notification:OnAuthenticationInformation",
75
- ({ loginUri, mustAuthenticate }) => {
76
- if (mustAuthenticate && loginUri) {
77
- if (resolveAuthSuggestedInWebsocket) {
78
- resolveAuthSuggestedInWebsocket({ loginUri, mustAuthenticate });
79
- }
80
- }
81
- }
82
- );
83
- return authSuggestedInWebsocket;
84
- }
85
- async function createAndSetupEnigmaSession(props, canRetry) {
86
- const { createEnigmaSession } = await Promise.resolve().then(() => _interopRequireWildcard(require("./MTAQE4WC.js")));
87
- const session = await createEnigmaSession(props);
88
- setupSessionListeners(session, props);
89
- let global;
90
- if (await _WOYJLK4Yjs.isWindows.call(void 0, props.hostConfig)) {
91
- const loginInfoPromise = listenForWindowsAuthenticationInformation(session);
92
- global = await session.open();
93
- const loginInfo = await loginInfoPromise;
94
- if (_optionalChain([loginInfo, 'optionalAccess', _ => _.mustAuthenticate])) {
95
- const action = await _WOYJLK4Yjs.handleAuthenticationError.call(void 0, {
96
- headers: new Headers(),
97
- status: 101,
98
- canRetry,
99
- hostConfig: props.hostConfig
100
- });
101
- if (canRetry && action.retry) {
102
- return createAndSetupEnigmaSession(props, false);
103
- }
104
- if (action.preventDefault) {
105
- return new Promise(() => {
106
- });
107
- }
108
- }
109
- } else {
110
- global = await session.open();
111
- }
112
- return {
113
- session,
114
- global
115
- };
116
- }
117
- var globalState = {
118
- sessionStates: {},
119
- state: "closed"
120
- };
121
- function stateListener(key, event) {
122
- if (event.eventType === "closed") {
123
- delete globalState.sessionStates[key];
124
- } else {
125
- globalState.sessionStates[key] = event.eventType;
126
- }
127
- const states = Object.values(globalState.sessionStates);
128
- let anySuspended = false;
129
- let anyResuming = false;
130
- for (const state of states) {
131
- if (state === "suspended") {
132
- anySuspended = true;
133
- } else if (state === "resuming") {
134
- anyResuming = true;
135
- }
136
- }
137
- let newState;
138
- if (states.length === 0) {
139
- newState = "closed";
140
- } else if (anySuspended) {
141
- newState = "suspended";
142
- } else if (anyResuming) {
143
- newState = "resuming";
144
- } else {
145
- newState = "open";
146
- }
147
- if (globalState.state !== newState) {
148
- globalState.state = newState;
149
- for (const fn of globalStateListeners) {
150
- fn({ state: newState });
151
- }
152
- }
153
- }
154
- function setupSessionListeners(session, props) {
155
- const key = toGlobalAppSessionId(props);
156
- const eventListener = (event) => {
157
- let sharedSession = void 0;
158
- let shouldHandleEvent = false;
159
- if (key in sharedSessions) {
160
- sharedSession = sharedSessions[key];
161
- shouldHandleEvent = sharedSession.connected;
162
- } else if (key in globalState.sessionStates) {
163
- shouldHandleEvent = true;
164
- }
165
- if (!shouldHandleEvent) {
166
- return;
167
- }
168
- stateListener(key, event);
169
- for (const fn of globalEventListeners) {
170
- fn(event);
171
- }
172
- if (sharedSession) {
173
- sharedSession.clients.forEach((client) => {
174
- for (const fn of client._listeners) {
175
- fn(event);
176
- }
177
- });
178
- if (event.eventType === "suspended" && shouldAutoResume(event.code)) {
179
- sharedSession.resume().catch((err) => {
180
- });
181
- }
182
- }
183
- };
184
- const suspendListener = (event) => {
185
- if (!(key in sharedSessions)) {
186
- return;
187
- }
188
- const sharedSession = sharedSessions[key];
189
- let resumed = false;
190
- let resumePromise = Promise.resolve();
191
- sharedSession.resume = async () => {
192
- if (!resumed) {
193
- session.emit("resuming", {});
194
- resumePromise = sessionResumeWithRetry(session, props.hostConfig).catch((err) => {
195
- session.suspend();
196
- return Promise.reject(err);
197
- });
198
- resumed = true;
199
- }
200
- return resumePromise;
201
- };
202
- };
203
- session.on("suspended", (event) => {
204
- const wsEvent = {
205
- eventType: "suspended",
206
- ...props,
207
- ...event
208
- };
209
- suspendListener(wsEvent);
210
- });
211
- session.on("opened", (event) => {
212
- const wsEvent = {
213
- eventType: "opened",
214
- ...props,
215
- ...event
216
- };
217
- eventListener(wsEvent);
218
- });
219
- session.on("closed", (event) => {
220
- const wsEvent = {
221
- eventType: "closed",
222
- ...props,
223
- ...event
224
- };
225
- eventListener(wsEvent);
226
- });
227
- session.on("suspended", (event) => {
228
- const wsEvent = {
229
- eventType: "suspended",
230
- ...props,
231
- ...event
232
- };
233
- eventListener(wsEvent);
234
- });
235
- session.on("resuming", (event) => {
236
- const wsEvent = {
237
- eventType: "resuming",
238
- ...props,
239
- ...event
240
- };
241
- eventListener(wsEvent);
242
- });
243
- session.on("resumed", (event) => {
244
- const wsEvent = {
245
- eventType: "resumed",
246
- ...props,
247
- ...event
248
- };
249
- eventListener(wsEvent);
250
- });
251
- }
252
- function separatePromises(input) {
253
- return {
254
- sessionPromise: input.then((res) => res.session),
255
- globalPromise: input.then((res) => res.global)
256
- };
257
- }
258
- var WEBSOCKET_CUSTOM_CLOSE_CODES = {
259
- /** The client itself "suspended" the session, don't auto-resume. */
260
- MANUAL_SUSPEND: 4e3,
261
- /** Engine closed the session due to idleness, don't auto-resume */
262
- IDLE_TIMEOUT: 4001,
263
- /** Some license issue, doesn't sound like auto-resume would do much good. */
264
- LICENSE_RENEWAL: 4002,
265
- /** The engine hosting the session is shutting down,
266
- * auto-resume to get another session from another engine. */
267
- ENGINE_TERMINATING: 4003,
268
- /** App deleted from an engine, auto-resume to open it on another engine. */
269
- APP_DELETED: 4004,
270
- /** Session closed due to session-limit, seems unwise to auto-resume here. */
271
- SESSION_LIMIT_REACHED: 4005,
272
- /** Authentication issue, auto-resume doesn't seem like a good idea. */
273
- AUTHENTICATION_FAILED: 4006,
274
- /** App-mode changed to Direct Query mode, let's auto-resume */
275
- APP_MODE_CHANGED: 4007
276
- };
277
- function shouldAutoResume(code) {
278
- switch (code) {
279
- case WEBSOCKET_CUSTOM_CLOSE_CODES.MANUAL_SUSPEND:
280
- case WEBSOCKET_CUSTOM_CLOSE_CODES.IDLE_TIMEOUT:
281
- case WEBSOCKET_CUSTOM_CLOSE_CODES.LICENSE_RENEWAL:
282
- case WEBSOCKET_CUSTOM_CLOSE_CODES.SESSION_LIMIT_REACHED:
283
- case WEBSOCKET_CUSTOM_CLOSE_CODES.AUTHENTICATION_FAILED:
284
- return false;
285
- case WEBSOCKET_CUSTOM_CLOSE_CODES.ENGINE_TERMINATING:
286
- case WEBSOCKET_CUSTOM_CLOSE_CODES.APP_DELETED:
287
- case WEBSOCKET_CUSTOM_CLOSE_CODES.APP_MODE_CHANGED:
288
- return true;
289
- }
290
- return false;
291
- }
292
- function createSharedSession(props) {
293
- const { sessionPromise, globalPromise } = separatePromises(createAndSetupEnigmaSession(props, true));
294
- const docPromise = globalPromise.then(async (global) => {
295
- if (props.useSessionApp) {
296
- const global2 = await sharedSession.globalPromise;
297
- return global2.createSessionApp();
298
- } else {
299
- return global.openDoc(props.appId, "", "", "", !!props.withoutData).then((doc) => {
300
- if (!doc) {
301
- return Promise.reject(new Error("Doc could not be opened"));
302
- }
303
- doc.global = global;
304
- return doc;
305
- });
306
- }
307
- });
308
- const key = toGlobalAppSessionId(props);
309
- const clients = [];
310
- function closeEnigmaSession() {
311
- delete sharedSessions[key];
312
- return sharedSession.sessionPromise.then((session) => session.close());
313
- }
314
- const sharedSession = {
315
- sessionPromise,
316
- globalPromise,
317
- docPromise,
318
- clients,
319
- addClient(client) {
320
- const index = sharedSession.clients.indexOf(client, 0);
321
- if (index === -1) {
322
- sharedSession.clients.push(client);
323
- }
324
- },
325
- removeClient(client, closeDelay) {
326
- const actuallyRemove = () => {
327
- const index = sharedSession.clients.indexOf(client, 0);
328
- if (index > -1) {
329
- sharedSession.clients.splice(index, 1);
330
- }
331
- if (sharedSession.clients.length === 0) {
332
- closeEnigmaSession();
333
- }
334
- };
335
- if (closeDelay > 0) {
336
- return new Promise((resolve) => {
337
- setTimeout(() => {
338
- actuallyRemove();
339
- resolve();
340
- }, closeDelay);
341
- });
342
- } else {
343
- actuallyRemove();
344
- }
345
- return Promise.resolve();
346
- },
347
- alreadyExecutedInitialActions: [],
348
- resume: () => {
349
- return Promise.resolve();
350
- },
351
- connected: false
352
- };
353
- sharedSession.docPromise = sharedSession.docPromise.then(async (doc) => {
354
- sharedSession.connected = true;
355
- const session = await sharedSession.sessionPromise;
356
- session.emit("opened", {});
357
- const initialActionsForApp = initialActions[key];
358
- if (initialActionsForApp && doc) {
359
- await runPendingInitialActions(initialActionsForApp, sharedSession, doc);
360
- }
361
- return doc;
362
- });
363
- sharedSession.docPromise = sharedSession.docPromise.catch((err) => {
364
- closeEnigmaSession();
365
- return Promise.reject(err);
366
- });
367
- return sharedSession;
368
- }
369
- var onlyOnReattach = false;
370
- function resumeShouldRejectPromiseIfNotReattached(bool) {
371
- onlyOnReattach = bool;
372
- }
373
- async function checkConnectivity(hostConfig) {
374
- let status = "online";
375
- const catchFunc = (err) => {
376
- const fetchErr = err;
377
- switch (fetchErr.status) {
378
- case 0:
379
- status = "offline";
380
- break;
381
- case 401:
382
- status = "unauthorized";
383
- break;
384
- }
385
- };
386
- const method = "get";
387
- const options = {
388
- hostConfig,
389
- timeoutMs: 2e3,
390
- noCache: true
391
- };
392
- const fetchRoot = _WOYJLK4Yjs.invokeFetch.call(void 0, "", { method, pathTemplate: "", options }).catch(catchFunc);
393
- const fetchMe = _WOYJLK4Yjs.invokeFetch.call(void 0, "", { method, pathTemplate: "/api/v1/users/me", options }).catch(catchFunc);
394
- await Promise.all([fetchRoot, fetchMe]);
395
- return Promise.resolve(status);
396
- }
397
- async function sessionResumeWithRetry(session, hostConfig) {
398
- const status = await checkConnectivity(hostConfig);
399
- if (status !== "online") {
400
- const error2 = new Error(`failed to resume: ${status}`);
401
- return Promise.reject(error2);
402
- }
403
- const maxRetries = 10;
404
- const retryTimeoutMs = 2e3;
405
- let resumed = false;
406
- let i = 0;
407
- let error;
408
- while (!resumed && i <= maxRetries) {
409
- try {
410
- await session.resume(onlyOnReattach);
411
- resumed = true;
412
- } catch (err) {
413
- error = err;
414
- let resolve = () => {
415
- };
416
- const promise = new Promise((res) => {
417
- resolve = res;
418
- });
419
- setTimeout(resolve, retryTimeoutMs);
420
- await promise;
421
- }
422
- i++;
423
- }
424
- if (!resumed) {
425
- return Promise.reject(error);
426
- }
427
- return Promise.resolve();
428
- }
429
- function getOrCreateSharedSession(props) {
430
- const key = toGlobalAppSessionId(props);
431
- sharedSessions[key] = sharedSessions[key] || createSharedSession(props);
432
- return sharedSessions[key];
433
- }
434
-
435
- // src/qix/qix-functions.ts
436
- async function createSessionApp() {
437
- let sharedSession;
438
- if ((await _WOYJLK4Yjs.getPlatform.call(void 0, )).isCloud) {
439
- sharedSession = await getOrCreateSharedSession({ appId: `SessionApp_${Date.now()}` });
440
- } else {
441
- sharedSession = await getOrCreateSharedSession({
442
- appId: `%3Ftransient%3D/identity/${Date.now()}`,
443
- useSessionApp: true
444
- });
445
- }
446
- let alreadyClosed = false;
447
- const listeners = /* @__PURE__ */ new Set();
448
- const qixSessionAppSession = {
449
- getDoc: () => sharedSession.docPromise,
450
- onWebSocketEvent(fn) {
451
- qixSessionAppSession._listeners.add(fn);
452
- return () => {
453
- qixSessionAppSession._listeners.delete(fn);
454
- };
455
- },
456
- _listeners: listeners,
457
- resume: async () => {
458
- return await sharedSession.resume();
459
- },
460
- close(props) {
461
- if (!alreadyClosed) {
462
- alreadyClosed = true;
463
- const defaultDelay = isBrowserEnvironment ? 5e3 : -1;
464
- return sharedSession.removeClient(qixSessionAppSession, _optionalChain([props, 'optionalAccess', _2 => _2.websocketCloseDelay]) || defaultDelay);
465
- }
466
- return Promise.resolve();
467
- }
468
- };
469
- return qixSessionAppSession;
470
- }
471
- function openAppSession(appIdOrProps) {
472
- const appSessionProps = typeof appIdOrProps === "string" ? { appId: appIdOrProps, identity: void 0, hostConfig: void 0 } : appIdOrProps;
473
- const appSessionId = toGlobalAppSessionId(appSessionProps);
474
- const externalApp = externalApps[appSessionId];
475
- if (externalApp) {
476
- return {
477
- getDoc: () => externalApp,
478
- onWebSocketEvent: (fn) => () => {
479
- },
480
- resume: () => Promise.resolve(),
481
- close: () => Promise.resolve()
482
- };
483
- }
484
- const sharedSession = getOrCreateSharedSession(appSessionProps);
485
- const listeners = /* @__PURE__ */ new Set();
486
- let alreadyClosed = false;
487
- const qixAppSession = {
488
- getDoc: () => sharedSession.docPromise,
489
- onWebSocketEvent(fn) {
490
- qixAppSession._listeners.add(fn);
491
- return () => {
492
- qixAppSession._listeners.delete(fn);
493
- };
494
- },
495
- _listeners: listeners,
496
- resume: async () => {
497
- return await sharedSession.resume();
498
- },
499
- close(props) {
500
- if (!alreadyClosed) {
501
- alreadyClosed = true;
502
- const defaultDelay = isBrowserEnvironment ? 5e3 : -1;
503
- return sharedSession.removeClient(qixAppSession, _optionalChain([props, 'optionalAccess', _3 => _3.websocketCloseDelay]) || defaultDelay);
504
- }
505
- return Promise.resolve();
506
- }
507
- };
508
- sharedSession.addClient(qixAppSession);
509
- return qixAppSession;
510
- }
511
- function registerExternalAppSession(appId, enigmaDocObject) {
512
- const appSessionId = toGlobalAppSessionId({ appId });
513
- externalApps[appSessionId] = Promise.resolve(enigmaDocObject);
514
- }
515
- function useAppHook(react) {
516
- return (appId) => {
517
- const [app, setApp] = react.useState(void 0);
518
- react.useEffect(() => {
519
- const appSession = openAppSession(appId);
520
- appSession.getDoc().then((x) => {
521
- setApp(x);
522
- });
523
- return () => {
524
- if (appSession) {
525
- appSession.close();
526
- }
527
- };
528
- }, [appId]);
529
- return app;
530
- };
531
- }
532
- function addInitialAppAction(openAppSessionProps, action) {
533
- addInitialSharedSessionCreationAction(openAppSessionProps, action);
534
- }
535
- function onWebSocketEvent(fn) {
536
- return globalOnWebSocketEvent(fn);
537
- }
538
- function onCombinedWebSocketStateChange(fn) {
539
- return globalOnStateChange(fn);
540
- }
541
- async function resumeSuspendedSessions() {
542
- return resumeAll();
543
- }
544
- function resumeOnlyOnReattach(bool) {
545
- resumeShouldRejectPromiseIfNotReattached(bool);
546
- }
547
- var externalApps = {};
548
- var isBrowserEnvironment = typeof window !== "undefined";
549
-
550
- // src/qix/qix.ts
551
- var qix = {
552
- addInitialAppAction,
553
- createSessionApp,
554
- openAppSession,
555
- registerExternalAppSession,
556
- useAppHook,
557
- onWebSocketEvent,
558
- onCombinedWebSocketStateChange,
559
- resumeSuspendedSessions,
560
- resumeOnlyOnReattach
561
- };
562
- var qix_default = qix;
563
-
564
-
565
-
566
-
567
-
568
-
569
-
570
-
571
-
572
-
573
-
574
- exports.addInitialAppAction = addInitialAppAction; exports.createSessionApp = createSessionApp; exports.default = qix_default; exports.onCombinedWebSocketStateChange = onCombinedWebSocketStateChange; exports.onWebSocketEvent = onWebSocketEvent; exports.openAppSession = openAppSession; exports.registerExternalAppSession = registerExternalAppSession; exports.resumeOnlyOnReattach = resumeOnlyOnReattach; exports.resumeSuspendedSessions = resumeSuspendedSessions; exports.useAppHook = useAppHook;
@@ -1,17 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
- var _WOYJLK4Yjs = require('./WOYJLK4Y.js');
9
- require('./4HB3TAEO.js');
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
- exports.EncodingError = _WOYJLK4Yjs.EncodingError; exports.InvokeFetchError = _WOYJLK4Yjs.InvokeFetchError; exports.clearApiCache = _WOYJLK4Yjs.clearApiCache; exports.default = _WOYJLK4Yjs.invoke_fetch_default; exports.invokeFetch = _WOYJLK4Yjs.invokeFetch; exports.parseFetchResponse = _WOYJLK4Yjs.parseFetchResponse;
@@ -1,67 +0,0 @@
1
- import "./VSY5YIQY.mjs";
2
-
3
- // node_modules/.pnpm/@qlik+runtime-module-loader@0.2.5/node_modules/@qlik/runtime-module-loader/dist/esm/index.js
4
- window.__qlikMainPrivateResolvers = window.__qlikMainPrivateResolvers || {};
5
- window.__qlikMainPrivateResolvers.mainUrlPromise = window.__qlikMainPrivateResolvers.mainUrlPromise || new Promise((resolve) => {
6
- window.__qlikMainPrivateResolvers.resolveMainJsUrl = (value) => resolve(value);
7
- });
8
- window.__qlikMainPrivateResolvers.qlikMainPromise = window.__qlikMainPrivateResolvers.qlikMainPromise || (async () => {
9
- if (window.QlikMain) {
10
- return window.QlikMain;
11
- }
12
- const url = await window.__qlikMainPrivateResolvers.mainUrlPromise;
13
- return new Promise((resolve, reject) => {
14
- if (window.QlikMain) {
15
- resolve(window.QlikMain);
16
- }
17
- const script = window.document.createElement("script");
18
- script.src = url;
19
- script.addEventListener("error", (err) => {
20
- reject(err);
21
- });
22
- script.addEventListener("load", () => {
23
- if (window.QlikMain) {
24
- resolve(window.QlikMain);
25
- }
26
- });
27
- window.document.head.appendChild(script);
28
- });
29
- })();
30
- function provideHostConfigForMainJsUrl(hostConfig) {
31
- const trailingSlashes = /\/+$/;
32
- function toMainJsUrl(hc) {
33
- const url = hc?.embedRuntimeUrl || hc?.url || hc?.host;
34
- if (!url) {
35
- return void 0;
36
- }
37
- let locationUrl;
38
- if (url.toLowerCase().startsWith("https://") || url.toLowerCase().startsWith("http://")) {
39
- locationUrl = url;
40
- } else {
41
- locationUrl = `https://${url}`;
42
- }
43
- locationUrl = locationUrl.replace(trailingSlashes, "");
44
- return `${locationUrl}/main.js`;
45
- }
46
- const potentialMainJsUrl = toMainJsUrl(hostConfig);
47
- if (potentialMainJsUrl) {
48
- window.__qlikMainPrivateResolvers.resolveMainJsUrl(potentialMainJsUrl);
49
- }
50
- }
51
- async function importRuntimeModule(name, hostConfig) {
52
- if (hostConfig?.runtimeModuleMocks?.[name]) {
53
- return hostConfig?.runtimeModuleMocks?.[name];
54
- }
55
- provideHostConfigForMainJsUrl(hostConfig);
56
- return importFromCdn(name);
57
- }
58
- async function importUnsupportedAndUnstableRuntimeModule(name) {
59
- return importFromCdn(name);
60
- }
61
- async function importFromCdn(name) {
62
- return (await window.__qlikMainPrivateResolvers.qlikMainPromise).import(name);
63
- }
64
- export {
65
- importRuntimeModule,
66
- importUnsupportedAndUnstableRuntimeModule
67
- };