@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.
- package/README.md +1 -1
- package/api-keys.js +25 -25
- package/apps.js +97 -97
- package/audits.js +23 -23
- package/auth.js +14 -14
- package/automations.js +47 -47
- package/brands.js +35 -35
- package/chunks/4HB3TAEO.js +4 -4
- package/chunks/{EHAANYDL.mjs → 4V5AAWUI.js} +3 -3
- package/chunks/{O4EAKEIN.mjs → D62LI5YU.js} +1 -1
- package/chunks/{6WX5AGKQ.mjs → L2BJNKLV.js} +2 -2
- package/chunks/{3YV6X7S6.mjs → LHCJKIEO.js} +1 -1
- package/chunks/OPRGGO4C.js +8 -8
- package/chunks/{HHOVS7QC.mjs → RNLZBOJU.js} +3 -3
- package/chunks/{BYD63JCG.mjs → SIU6HO6B.js} +5 -3
- package/chunks/{6AD3HYSF.mjs → TFSRDRRS.js} +1 -1
- package/chunks/{HOCTJESP.mjs → VK2CODYY.js} +2 -2
- package/chunks/{UKVTBYP6.mjs → XOVMZWDC.js} +2 -2
- package/collections.js +33 -33
- package/csp-origins.js +23 -23
- package/data-assets.js +21 -21
- package/data-connections.js +29 -29
- package/data-credentials.js +19 -19
- package/data-files.js +35 -35
- package/docs/authentication.md +5 -5
- package/docs/examples/fetch-spaces.md +1 -15
- package/docs/examples/show-sheet-list.md +1 -1
- package/docs/features.md +1 -1
- package/extensions.js +25 -25
- package/glossaries.js +59 -59
- package/groups.d.ts +0 -3
- package/groups.js +27 -27
- package/identity-providers.js +27 -27
- package/index.js +53 -53
- package/items.js +27 -27
- package/licenses.js +29 -29
- package/package.json +36 -232
- package/qix.d.ts +1 -1
- package/qix.js +10 -10
- package/quotas.js +15 -15
- package/reload-tasks.js +21 -21
- package/reloads.js +19 -19
- package/roles.js +15 -15
- package/spaces.js +35 -35
- package/temp-contents.js +17 -17
- package/tenants.js +23 -23
- package/themes.js +25 -25
- package/transports.js +23 -23
- package/users.d.ts +1 -3
- package/users.js +31 -31
- package/web-integrations.js +21 -21
- package/web-notifications.js +23 -23
- package/webhooks.js +31 -31
- package/api-keys.d.mts +0 -336
- package/api-keys.mjs +0 -80
- package/apps.d.mts +0 -2431
- package/apps.mjs +0 -398
- package/audits.d.mts +0 -286
- package/audits.mjs +0 -64
- package/auth-types-nnUcWhuU.d.mts +0 -98
- package/auth.d.mts +0 -26
- package/auth.mjs +0 -14
- package/automations.d.mts +0 -682
- package/automations.mjs +0 -173
- package/brands.d.mts +0 -670
- package/brands.mjs +0 -123
- package/chunks/2YWCEGTS.js +0 -21
- package/chunks/34ZKUFEA.js +0 -41
- package/chunks/4WHZ4EIW.js +0 -57
- package/chunks/B4VPD3ZT.js +0 -574
- package/chunks/BM4OSDRZ.js +0 -17
- package/chunks/DCXUEDOW.mjs +0 -67
- package/chunks/MTAQE4WC.js +0 -10411
- package/chunks/PLOSYUG2.js +0 -25
- package/chunks/URIW2U5M.js +0 -17
- package/chunks/VSY5YIQY.mjs +0 -11
- package/chunks/WOYJLK4Y.js +0 -1623
- package/collections.d.mts +0 -581
- package/collections.mjs +0 -114
- package/csp-origins.d.mts +0 -273
- package/csp-origins.mjs +0 -69
- package/data-assets.d.mts +0 -205
- package/data-assets.mjs +0 -66
- package/data-connections.d.mts +0 -594
- package/data-connections.mjs +0 -103
- package/data-credentials.d.mts +0 -204
- package/data-credentials.mjs +0 -59
- package/data-files.d.mts +0 -562
- package/data-files.mjs +0 -123
- package/extensions.d.mts +0 -293
- package/extensions.mjs +0 -77
- package/global.types-5iFvFJvX.d.mts +0 -115
- package/glossaries.d.mts +0 -1173
- package/glossaries.mjs +0 -237
- package/groups.d.mts +0 -434
- package/groups.mjs +0 -88
- package/identity-providers.d.mts +0 -550
- package/identity-providers.mjs +0 -83
- package/index.d.mts +0 -142
- package/index.mjs +0 -716
- package/items.d.mts +0 -535
- package/items.mjs +0 -87
- package/licenses.d.mts +0 -459
- package/licenses.mjs +0 -92
- package/qix.d.mts +0 -11629
- package/qix.mjs +0 -10
- package/quotas.d.mts +0 -112
- package/quotas.mjs +0 -32
- package/reload-tasks.d.mts +0 -227
- package/reload-tasks.mjs +0 -62
- package/reloads.d.mts +0 -207
- package/reloads.mjs +0 -46
- package/roles.d.mts +0 -175
- package/roles.mjs +0 -31
- package/spaces.d.mts +0 -562
- package/spaces.mjs +0 -124
- package/temp-contents.d.mts +0 -167
- package/temp-contents.mjs +0 -41
- package/tenants.d.mts +0 -300
- package/tenants.mjs +0 -73
- package/themes.d.mts +0 -268
- package/themes.mjs +0 -77
- package/transports.d.mts +0 -319
- package/transports.mjs +0 -65
- package/users.d.mts +0 -631
- package/users.mjs +0 -104
- package/web-integrations.d.mts +0 -274
- package/web-integrations.mjs +0 -62
- package/web-notifications.d.mts +0 -250
- package/web-notifications.mjs +0 -69
- package/webhooks.d.mts +0 -445
- package/webhooks.mjs +0 -104
package/chunks/B4VPD3ZT.js
DELETED
|
@@ -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;
|
package/chunks/BM4OSDRZ.js
DELETED
|
@@ -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;
|
package/chunks/DCXUEDOW.mjs
DELETED
|
@@ -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
|
-
};
|