@qlik/api 0.0.16 → 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 (132) 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.js +29 -29
  23. package/data-credentials.js +19 -19
  24. package/data-files.js +35 -35
  25. package/docs/authentication.md +5 -5
  26. package/docs/examples/fetch-spaces.md +1 -15
  27. package/docs/examples/show-sheet-list.md +1 -1
  28. package/docs/features.md +1 -1
  29. package/extensions.js +25 -25
  30. package/glossaries.js +59 -59
  31. package/groups.d.ts +0 -3
  32. package/groups.js +27 -27
  33. package/identity-providers.js +27 -27
  34. package/index.js +53 -53
  35. package/items.js +27 -27
  36. package/licenses.js +29 -29
  37. package/package.json +36 -232
  38. package/qix.d.ts +1 -1
  39. package/qix.js +10 -10
  40. package/quotas.js +15 -15
  41. package/reload-tasks.js +21 -21
  42. package/reloads.js +19 -19
  43. package/roles.js +15 -15
  44. package/spaces.js +35 -35
  45. package/temp-contents.js +17 -17
  46. package/tenants.js +23 -23
  47. package/themes.js +25 -25
  48. package/transports.js +23 -23
  49. package/users.d.ts +1 -3
  50. package/users.js +31 -31
  51. package/web-integrations.js +21 -21
  52. package/web-notifications.js +23 -23
  53. package/webhooks.js +31 -31
  54. package/api-keys.d.mts +0 -336
  55. package/api-keys.mjs +0 -80
  56. package/apps.d.mts +0 -2431
  57. package/apps.mjs +0 -398
  58. package/audits.d.mts +0 -286
  59. package/audits.mjs +0 -64
  60. package/auth-types-nnUcWhuU.d.mts +0 -98
  61. package/auth.d.mts +0 -26
  62. package/auth.mjs +0 -14
  63. package/automations.d.mts +0 -682
  64. package/automations.mjs +0 -173
  65. package/brands.d.mts +0 -670
  66. package/brands.mjs +0 -123
  67. package/chunks/2YWCEGTS.js +0 -21
  68. package/chunks/34ZKUFEA.js +0 -41
  69. package/chunks/4WHZ4EIW.js +0 -57
  70. package/chunks/B4VPD3ZT.js +0 -574
  71. package/chunks/BM4OSDRZ.js +0 -17
  72. package/chunks/DCXUEDOW.mjs +0 -67
  73. package/chunks/MTAQE4WC.js +0 -10411
  74. package/chunks/PLOSYUG2.js +0 -25
  75. package/chunks/URIW2U5M.js +0 -17
  76. package/chunks/VSY5YIQY.mjs +0 -11
  77. package/chunks/WOYJLK4Y.js +0 -1623
  78. package/collections.d.mts +0 -581
  79. package/collections.mjs +0 -114
  80. package/csp-origins.d.mts +0 -273
  81. package/csp-origins.mjs +0 -69
  82. package/data-assets.d.mts +0 -205
  83. package/data-assets.mjs +0 -66
  84. package/data-connections.d.mts +0 -594
  85. package/data-connections.mjs +0 -103
  86. package/data-credentials.d.mts +0 -204
  87. package/data-credentials.mjs +0 -59
  88. package/data-files.d.mts +0 -562
  89. package/data-files.mjs +0 -123
  90. package/extensions.d.mts +0 -293
  91. package/extensions.mjs +0 -77
  92. package/global.types-5iFvFJvX.d.mts +0 -115
  93. package/glossaries.d.mts +0 -1173
  94. package/glossaries.mjs +0 -237
  95. package/groups.d.mts +0 -434
  96. package/groups.mjs +0 -88
  97. package/identity-providers.d.mts +0 -550
  98. package/identity-providers.mjs +0 -83
  99. package/index.d.mts +0 -142
  100. package/index.mjs +0 -716
  101. package/items.d.mts +0 -535
  102. package/items.mjs +0 -87
  103. package/licenses.d.mts +0 -459
  104. package/licenses.mjs +0 -92
  105. package/qix.d.mts +0 -11629
  106. package/qix.mjs +0 -10
  107. package/quotas.d.mts +0 -112
  108. package/quotas.mjs +0 -32
  109. package/reload-tasks.d.mts +0 -227
  110. package/reload-tasks.mjs +0 -62
  111. package/reloads.d.mts +0 -207
  112. package/reloads.mjs +0 -46
  113. package/roles.d.mts +0 -175
  114. package/roles.mjs +0 -31
  115. package/spaces.d.mts +0 -562
  116. package/spaces.mjs +0 -124
  117. package/temp-contents.d.mts +0 -167
  118. package/temp-contents.mjs +0 -41
  119. package/tenants.d.mts +0 -300
  120. package/tenants.mjs +0 -73
  121. package/themes.d.mts +0 -268
  122. package/themes.mjs +0 -77
  123. package/transports.d.mts +0 -319
  124. package/transports.mjs +0 -65
  125. package/users.d.mts +0 -631
  126. package/users.mjs +0 -104
  127. package/web-integrations.d.mts +0 -274
  128. package/web-integrations.mjs +0 -62
  129. package/web-notifications.d.mts +0 -250
  130. package/web-notifications.mjs +0 -69
  131. package/webhooks.d.mts +0 -445
  132. 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
- };