@uipath/codedapp-tool 1.201.0-preview.133 → 1.202.0-preview.134
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/dist/{browser-strategy-16yagjhr.js → browser-strategy-6atc7v8s.js} +3 -3
- package/dist/{index-y19pndcy.js → index-d9c1ecq8.js} +71 -69
- package/dist/{index-4tmzxx6y.js → index-h630x08t.js} +158 -76
- package/dist/{index-hsadteg4.js → index-h8cph72k.js} +4 -4
- package/dist/{index-9f8q2ege.js → index-p3vk57z7.js} +27 -27
- package/dist/index.js +11 -9
- package/dist/{js-yaml-cggj6w7q.js → js-yaml-87tvr6f6.js} +16 -16
- package/dist/{multipart-parser-kme45c99.js → multipart-parser-ab4q7byb.js} +2 -2
- package/dist/{node-strategy-gfq7k0sx.js → node-strategy-bpshtz02.js} +130 -14
- package/dist/packager-tool-14ha5twz.js +1838 -0
- package/dist/{tool-wckvcay0.js → packager-tool-1yh8g550.js} +9 -7
- package/dist/{tool-yadq0xpc.js → packager-tool-8hncwr6a.js} +56 -302
- package/dist/packager-tool-jke4p8q1.js +1515 -0
- package/dist/{tool-4pvh3k50.js → packager-tool-qyctya2j.js} +2 -2
- package/dist/{tool-bydtassw.js → packager-tool-s019q130.js} +1443 -3112
- package/dist/{tool-25qmnad0.js → packager-tool-vcw2ht7n.js} +1188 -1873
- package/dist/{tool-y0g9grx6.js → packager-tool-vv9c52ax.js} +5 -5
- package/dist/{tool-q42rrs00.js → packager-tool-yc4kw997.js} +3 -2
- package/dist/packager-tool.js +17 -0
- package/dist/tool.js +13 -11
- package/package.json +4 -3
- /package/dist/{tool-0gctz400.js → packager-tool-0gctz400.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./tool-
|
|
1
|
+
import"./packager-tool-1yh8g550.js";
|
|
2
2
|
|
|
3
3
|
// ../../node_modules/js-yaml/dist/js-yaml.mjs
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -3125,21 +3125,21 @@ var {
|
|
|
3125
3125
|
safeDump
|
|
3126
3126
|
} = yaml;
|
|
3127
3127
|
export {
|
|
3128
|
-
|
|
3129
|
-
safeLoadAll,
|
|
3130
|
-
safeLoad,
|
|
3131
|
-
safeDump,
|
|
3132
|
-
loadAll,
|
|
3133
|
-
load,
|
|
3134
|
-
dump,
|
|
3135
|
-
yaml as default,
|
|
3136
|
-
YAMLException,
|
|
3137
|
-
Type,
|
|
3138
|
-
Schema,
|
|
3139
|
-
JSON_SCHEMA,
|
|
3140
|
-
FAILSAFE_SCHEMA,
|
|
3128
|
+
CORE_SCHEMA,
|
|
3141
3129
|
DEFAULT_SCHEMA,
|
|
3142
|
-
|
|
3130
|
+
FAILSAFE_SCHEMA,
|
|
3131
|
+
JSON_SCHEMA,
|
|
3132
|
+
Schema,
|
|
3133
|
+
Type,
|
|
3134
|
+
YAMLException,
|
|
3135
|
+
yaml as default,
|
|
3136
|
+
dump,
|
|
3137
|
+
load,
|
|
3138
|
+
loadAll,
|
|
3139
|
+
safeDump,
|
|
3140
|
+
safeLoad,
|
|
3141
|
+
safeLoadAll,
|
|
3142
|
+
types
|
|
3143
3143
|
};
|
|
3144
3144
|
|
|
3145
|
-
//# debugId=
|
|
3145
|
+
//# debugId=3FF8535573D0966A64756E2164756E21
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
catchError,
|
|
3
3
|
getFileSystem
|
|
4
|
-
} from "./tool-
|
|
4
|
+
} from "./packager-tool-qyctya2j.js";
|
|
5
5
|
import {
|
|
6
6
|
AUTH_CANCELLED_ERROR_CODE,
|
|
7
|
+
AUTH_RECLAIMED_ERROR_CODE,
|
|
7
8
|
AUTH_TIMEOUT_ERROR_CODE,
|
|
8
9
|
DEFAULT_AUTH_TIMEOUT_MS
|
|
9
|
-
} from "./tool-
|
|
10
|
+
} from "./packager-tool-yc4kw997.js";
|
|
10
11
|
import {
|
|
11
12
|
__require
|
|
12
|
-
} from "./tool-
|
|
13
|
+
} from "./packager-tool-1yh8g550.js";
|
|
13
14
|
|
|
14
15
|
// ../auth/src/getBaseHtml.ts
|
|
16
|
+
var CALLBACK_PAGE_TITLE_SUFFIX = " - UiPath CLI";
|
|
15
17
|
var escapeHtml = (value) => value.replace(/[&<>"']/g, (char) => {
|
|
16
18
|
switch (char) {
|
|
17
19
|
case "&":
|
|
@@ -39,7 +41,7 @@ var getBaseHtml = ({ title, message, type }) => {
|
|
|
39
41
|
<head>
|
|
40
42
|
<meta charset="UTF-8">
|
|
41
43
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
42
|
-
<title>${safeTitle}
|
|
44
|
+
<title>${safeTitle}${CALLBACK_PAGE_TITLE_SUFFIX}</title>
|
|
43
45
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
44
46
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
45
47
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400&family=Poppins:wght@600&display=swap" rel="stylesheet">
|
|
@@ -175,11 +177,60 @@ var getBaseHtml = ({ title, message, type }) => {
|
|
|
175
177
|
};
|
|
176
178
|
|
|
177
179
|
// ../auth/src/server.ts
|
|
180
|
+
var RECLAIM_PROBE_PATH = "/uip-reclaim-probe";
|
|
181
|
+
var RECLAIM_LISTENER_PID_HEADER = "x-uipath-cli-login-pid";
|
|
182
|
+
var RECLAIM_PROBER_PID_HEADER = "x-uipath-cli-prober-pid";
|
|
183
|
+
var RECLAIM_MARKER = `${CALLBACK_PAGE_TITLE_SUFFIX}</title>`;
|
|
184
|
+
var RECLAIM_PROBE_TIMEOUT_MS = 1000;
|
|
185
|
+
var RECLAIM_REBIND_DELAY_MS = 150;
|
|
186
|
+
var RECLAIM_PROBE_READ_LIMIT = 16 * 1024;
|
|
187
|
+
var probeStaleCallbackListener = (http, host, port) => new Promise((resolve) => {
|
|
188
|
+
let sawResponse = false;
|
|
189
|
+
let listenerPid;
|
|
190
|
+
let deadline;
|
|
191
|
+
const settle = (verdict) => {
|
|
192
|
+
clearTimeout(deadline);
|
|
193
|
+
resolve({ verdict, pid: listenerPid });
|
|
194
|
+
};
|
|
195
|
+
const req = http.get({
|
|
196
|
+
host,
|
|
197
|
+
port,
|
|
198
|
+
path: RECLAIM_PROBE_PATH,
|
|
199
|
+
timeout: RECLAIM_PROBE_TIMEOUT_MS,
|
|
200
|
+
headers: { [RECLAIM_PROBER_PID_HEADER]: String(process.pid) }
|
|
201
|
+
}, (res) => {
|
|
202
|
+
sawResponse = true;
|
|
203
|
+
const rawPid = res.headers[RECLAIM_LISTENER_PID_HEADER];
|
|
204
|
+
if (typeof rawPid === "string" && /^\d+$/.test(rawPid)) {
|
|
205
|
+
listenerPid = Number.parseInt(rawPid, 10);
|
|
206
|
+
}
|
|
207
|
+
res.on("error", () => {});
|
|
208
|
+
let body = "";
|
|
209
|
+
res.setEncoding("utf8");
|
|
210
|
+
const classify = () => settle(body.includes(RECLAIM_MARKER) ? "reclaimed" : "foreign");
|
|
211
|
+
res.on("data", (chunk) => {
|
|
212
|
+
body += chunk;
|
|
213
|
+
if (body.length >= RECLAIM_PROBE_READ_LIMIT) {
|
|
214
|
+
classify();
|
|
215
|
+
req.destroy();
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
res.on("end", classify);
|
|
219
|
+
});
|
|
220
|
+
const giveUp = () => {
|
|
221
|
+
settle("foreign");
|
|
222
|
+
req.destroy();
|
|
223
|
+
};
|
|
224
|
+
req.on("timeout", giveUp);
|
|
225
|
+
deadline = setTimeout(giveUp, RECLAIM_PROBE_TIMEOUT_MS);
|
|
226
|
+
req.on("error", () => settle(sawResponse ? "foreign" : "gone"));
|
|
227
|
+
});
|
|
178
228
|
var startServer = async ({
|
|
179
229
|
redirectUri,
|
|
180
230
|
timeoutMs = DEFAULT_AUTH_TIMEOUT_MS,
|
|
181
231
|
onListening,
|
|
182
|
-
signal
|
|
232
|
+
signal,
|
|
233
|
+
onPortReclaimed
|
|
183
234
|
}) => {
|
|
184
235
|
let http;
|
|
185
236
|
try {
|
|
@@ -204,6 +255,25 @@ var startServer = async ({
|
|
|
204
255
|
return;
|
|
205
256
|
}
|
|
206
257
|
const url = new URL(req.url, redirectUri);
|
|
258
|
+
if (url.pathname === RECLAIM_PROBE_PATH) {
|
|
259
|
+
const proberPidRaw = req.headers[RECLAIM_PROBER_PID_HEADER];
|
|
260
|
+
const proberPid = typeof proberPidRaw === "string" && /^\d+$/.test(proberPidRaw) ? ` (PID ${proberPidRaw})` : "";
|
|
261
|
+
res.writeHead(200, {
|
|
262
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
263
|
+
Connection: "close",
|
|
264
|
+
[RECLAIM_LISTENER_PID_HEADER]: String(process.pid)
|
|
265
|
+
});
|
|
266
|
+
res.end(getBaseHtml({
|
|
267
|
+
title: "Login superseded",
|
|
268
|
+
message: "This sign-in was taken over by a newer 'uip login' on this machine.",
|
|
269
|
+
type: "error"
|
|
270
|
+
}));
|
|
271
|
+
server.close();
|
|
272
|
+
const err = new Error(`Another 'uip login'${proberPid} on this machine took over the callback port; this login was cancelled.`);
|
|
273
|
+
err.code = AUTH_RECLAIMED_ERROR_CODE;
|
|
274
|
+
reject(err);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
207
277
|
const error = url.searchParams.get("error");
|
|
208
278
|
if (error) {
|
|
209
279
|
res.writeHead(400, {
|
|
@@ -248,7 +318,9 @@ var startServer = async ({
|
|
|
248
318
|
return;
|
|
249
319
|
});
|
|
250
320
|
let timeoutHandle;
|
|
321
|
+
let settled = false;
|
|
251
322
|
const onAbort = () => {
|
|
323
|
+
settled = true;
|
|
252
324
|
clearTimeout(timeoutHandle);
|
|
253
325
|
server.close();
|
|
254
326
|
const err = new Error("Authentication cancelled");
|
|
@@ -263,6 +335,7 @@ var startServer = async ({
|
|
|
263
335
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
264
336
|
}
|
|
265
337
|
timeoutHandle = setTimeout(() => {
|
|
338
|
+
settled = true;
|
|
266
339
|
server.close();
|
|
267
340
|
signal?.removeEventListener("abort", onAbort);
|
|
268
341
|
const err = new Error("Authentication timeout");
|
|
@@ -270,20 +343,62 @@ var startServer = async ({
|
|
|
270
343
|
reject(err);
|
|
271
344
|
}, timeoutMs);
|
|
272
345
|
const bindHost = redirectUri.hostname === "localhost" ? "127.0.0.1" : redirectUri.hostname;
|
|
273
|
-
|
|
346
|
+
const fail = (err) => {
|
|
347
|
+
settled = true;
|
|
274
348
|
clearTimeout(timeoutHandle);
|
|
275
349
|
signal?.removeEventListener("abort", onAbort);
|
|
276
350
|
reject(err);
|
|
351
|
+
};
|
|
352
|
+
let reclaimAttempted = false;
|
|
353
|
+
let reclaimed = false;
|
|
354
|
+
let reclaimedPid;
|
|
355
|
+
let rebindAttemptsLeft = 0;
|
|
356
|
+
server.on("listening", () => {
|
|
357
|
+
Promise.resolve().then(() => {
|
|
358
|
+
if (reclaimed)
|
|
359
|
+
onPortReclaimed?.({ pid: reclaimedPid });
|
|
360
|
+
}).then(() => onListening?.()).catch((err) => {
|
|
361
|
+
settled = true;
|
|
362
|
+
server.close();
|
|
363
|
+
clearTimeout(timeoutHandle);
|
|
364
|
+
reject(err);
|
|
365
|
+
});
|
|
277
366
|
});
|
|
278
|
-
|
|
279
|
-
if (
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
367
|
+
const listen = () => {
|
|
368
|
+
if (settled)
|
|
369
|
+
return;
|
|
370
|
+
server.listen(Number(redirectUri.port), bindHost);
|
|
371
|
+
};
|
|
372
|
+
server.on("error", (err) => {
|
|
373
|
+
if (settled)
|
|
374
|
+
return;
|
|
375
|
+
const code = err.code;
|
|
376
|
+
if (code === "EADDRINUSE") {
|
|
377
|
+
if (!reclaimAttempted) {
|
|
378
|
+
reclaimAttempted = true;
|
|
379
|
+
probeStaleCallbackListener(http, bindHost, Number(redirectUri.port)).then(({ verdict, pid }) => {
|
|
380
|
+
if (settled)
|
|
381
|
+
return;
|
|
382
|
+
if (verdict === "foreign") {
|
|
383
|
+
fail(err);
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
reclaimed = verdict === "reclaimed";
|
|
387
|
+
reclaimedPid = pid;
|
|
388
|
+
rebindAttemptsLeft = 3;
|
|
389
|
+
setTimeout(listen, RECLAIM_REBIND_DELAY_MS);
|
|
390
|
+
});
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
if (rebindAttemptsLeft > 0) {
|
|
394
|
+
rebindAttemptsLeft -= 1;
|
|
395
|
+
setTimeout(listen, RECLAIM_REBIND_DELAY_MS);
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
285
398
|
}
|
|
399
|
+
fail(err);
|
|
286
400
|
});
|
|
401
|
+
listen();
|
|
287
402
|
server.on("close", () => {
|
|
288
403
|
clearTimeout(timeoutHandle);
|
|
289
404
|
signal?.removeEventListener("abort", onAbort);
|
|
@@ -299,6 +414,7 @@ class NodeAuthStrategy {
|
|
|
299
414
|
redirectUri,
|
|
300
415
|
timeoutMs: opts?.timeoutMs,
|
|
301
416
|
signal: opts?.signal,
|
|
417
|
+
onPortReclaimed: opts?.onPortReclaimed,
|
|
302
418
|
onListening: async () => {
|
|
303
419
|
let safeUrl = "";
|
|
304
420
|
for (const ch of url) {
|
|
@@ -345,4 +461,4 @@ export {
|
|
|
345
461
|
NodeAuthStrategy
|
|
346
462
|
};
|
|
347
463
|
|
|
348
|
-
//# debugId=
|
|
464
|
+
//# debugId=61C68C1CA3F57C5B64756E2164756E21
|