@uipath/ixp-tool 1.198.0-preview.95 → 1.198.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/dist/index.js +2 -2
- package/dist/tool.js +258 -151
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -2146,7 +2146,7 @@ var {
|
|
|
2146
2146
|
var package_default = {
|
|
2147
2147
|
name: "@uipath/ixp-tool",
|
|
2148
2148
|
license: "MIT",
|
|
2149
|
-
version: "1.198.0
|
|
2149
|
+
version: "1.198.0",
|
|
2150
2150
|
description: "Manage UiPath IXP projects, prompts, predictions, and model publishing.",
|
|
2151
2151
|
private: false,
|
|
2152
2152
|
repository: {
|
|
@@ -2196,4 +2196,4 @@ program2.name("ixp-tool").description("UiPath IXP Tool - Standalone CLI").versio
|
|
|
2196
2196
|
await registerCommands(program2);
|
|
2197
2197
|
program2.parse(process.argv);
|
|
2198
2198
|
|
|
2199
|
-
//# debugId=
|
|
2199
|
+
//# debugId=B1F74854BFC84DE664756E2164756E21
|
package/dist/tool.js
CHANGED
|
@@ -21230,7 +21230,7 @@ var init_server = __esm(() => {
|
|
|
21230
21230
|
var package_default = {
|
|
21231
21231
|
name: "@uipath/ixp-tool",
|
|
21232
21232
|
license: "MIT",
|
|
21233
|
-
version: "1.198.0
|
|
21233
|
+
version: "1.198.0",
|
|
21234
21234
|
description: "Manage UiPath IXP projects, prompts, predictions, and model publishing.",
|
|
21235
21235
|
private: false,
|
|
21236
21236
|
repository: {
|
|
@@ -27408,11 +27408,36 @@ class NodeContextStorage {
|
|
|
27408
27408
|
return this.storage.getStore();
|
|
27409
27409
|
}
|
|
27410
27410
|
}
|
|
27411
|
+
// ../common/src/telemetry/trace-context.ts
|
|
27412
|
+
var TELEMETRY_TRACEPARENT_ENV = "TRACEPARENT";
|
|
27413
|
+
var TRACEPARENT_PATTERN = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/;
|
|
27414
|
+
function getProcessEnv() {
|
|
27415
|
+
return globalThis.process?.env;
|
|
27416
|
+
}
|
|
27417
|
+
function parseInboundTraceparent(value) {
|
|
27418
|
+
if (!value) {
|
|
27419
|
+
return;
|
|
27420
|
+
}
|
|
27421
|
+
const match = TRACEPARENT_PATTERN.exec(value.trim().toLowerCase());
|
|
27422
|
+
if (!match) {
|
|
27423
|
+
return;
|
|
27424
|
+
}
|
|
27425
|
+
const [, traceId, parentSpanId] = match;
|
|
27426
|
+
if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId)) {
|
|
27427
|
+
return;
|
|
27428
|
+
}
|
|
27429
|
+
return { traceId, parentSpanId };
|
|
27430
|
+
}
|
|
27431
|
+
function getInboundTraceContext() {
|
|
27432
|
+
return parseInboundTraceparent(getProcessEnv()?.[TELEMETRY_TRACEPARENT_ENV]);
|
|
27433
|
+
}
|
|
27434
|
+
|
|
27411
27435
|
// ../common/src/telemetry/session-id.ts
|
|
27412
27436
|
var TELEMETRY_SESSION_ID_ENV = "UIPATH_SESSION_ID";
|
|
27413
27437
|
var TELEMETRY_SESSION_ID_PROPERTY = "session_id";
|
|
27414
27438
|
var telemetrySessionIdSlot = singleton("TelemetrySessionId");
|
|
27415
|
-
|
|
27439
|
+
var telemetryOperationIdSlot = singleton("TelemetryOperationId");
|
|
27440
|
+
function getProcessEnv2() {
|
|
27416
27441
|
return globalThis.process?.env;
|
|
27417
27442
|
}
|
|
27418
27443
|
function normalizeSessionId(value) {
|
|
@@ -27423,18 +27448,165 @@ function normalizeSessionId(value) {
|
|
|
27423
27448
|
return trimmed || undefined;
|
|
27424
27449
|
}
|
|
27425
27450
|
function getConfiguredTelemetrySessionId() {
|
|
27426
|
-
return normalizeSessionId(
|
|
27451
|
+
return normalizeSessionId(getProcessEnv2()?.[TELEMETRY_SESSION_ID_ENV]);
|
|
27427
27452
|
}
|
|
27428
27453
|
function resolveTelemetrySessionId(existingSessionId) {
|
|
27429
27454
|
return getConfiguredTelemetrySessionId() ?? normalizeSessionId(existingSessionId);
|
|
27430
27455
|
}
|
|
27456
|
+
function getTelemetryOperationId() {
|
|
27457
|
+
const existing = telemetryOperationIdSlot.get();
|
|
27458
|
+
if (existing) {
|
|
27459
|
+
return existing;
|
|
27460
|
+
}
|
|
27461
|
+
const inboundTraceId = getInboundTraceContext()?.traceId;
|
|
27462
|
+
const generated = inboundTraceId ?? crypto.randomUUID().replaceAll("-", "");
|
|
27463
|
+
telemetryOperationIdSlot.set(generated);
|
|
27464
|
+
return generated;
|
|
27465
|
+
}
|
|
27431
27466
|
// ../common/src/telemetry/global-telemetry-properties.ts
|
|
27432
27467
|
var telemetryPropsSlot = singleton("TelemetryDefaultProps");
|
|
27433
27468
|
function getGlobalTelemetryProperties() {
|
|
27434
27469
|
return telemetryPropsSlot.get();
|
|
27435
27470
|
}
|
|
27436
27471
|
|
|
27472
|
+
// ../common/src/telemetry/pii-redactor.ts
|
|
27473
|
+
var REDACTED = "[REDACTED]";
|
|
27474
|
+
var MAX_VALUE_LENGTH = 200;
|
|
27475
|
+
var SENSITIVE_NAME_TOKENS = new Set([
|
|
27476
|
+
"token",
|
|
27477
|
+
"tokens",
|
|
27478
|
+
"secret",
|
|
27479
|
+
"secrets",
|
|
27480
|
+
"password",
|
|
27481
|
+
"passwords",
|
|
27482
|
+
"pwd",
|
|
27483
|
+
"credential",
|
|
27484
|
+
"credentials",
|
|
27485
|
+
"auth",
|
|
27486
|
+
"authentication",
|
|
27487
|
+
"authorization",
|
|
27488
|
+
"authority",
|
|
27489
|
+
"cert",
|
|
27490
|
+
"certificate",
|
|
27491
|
+
"certificates"
|
|
27492
|
+
]);
|
|
27493
|
+
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
27494
|
+
"api",
|
|
27495
|
+
"access",
|
|
27496
|
+
"client",
|
|
27497
|
+
"private",
|
|
27498
|
+
"public",
|
|
27499
|
+
"signing",
|
|
27500
|
+
"encryption",
|
|
27501
|
+
"session",
|
|
27502
|
+
"master",
|
|
27503
|
+
"shared",
|
|
27504
|
+
"root",
|
|
27505
|
+
"ssh",
|
|
27506
|
+
"rsa",
|
|
27507
|
+
"aes",
|
|
27508
|
+
"hmac",
|
|
27509
|
+
"oauth"
|
|
27510
|
+
]);
|
|
27511
|
+
var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
27512
|
+
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
27513
|
+
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
27514
|
+
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
27515
|
+
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
27516
|
+
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
27517
|
+
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
27518
|
+
function shortHash(input) {
|
|
27519
|
+
let hash = 2166136261;
|
|
27520
|
+
for (let i = 0;i < input.length; i++) {
|
|
27521
|
+
hash ^= input.charCodeAt(i);
|
|
27522
|
+
hash = Math.imul(hash, 16777619);
|
|
27523
|
+
}
|
|
27524
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
27525
|
+
}
|
|
27526
|
+
function redactUrl(raw) {
|
|
27527
|
+
try {
|
|
27528
|
+
const url = new URL(raw);
|
|
27529
|
+
return `${url.protocol}//${url.host}`;
|
|
27530
|
+
} catch {
|
|
27531
|
+
return `url#${shortHash(raw)}`;
|
|
27532
|
+
}
|
|
27533
|
+
}
|
|
27534
|
+
function redactValueDetectors(value) {
|
|
27535
|
+
let out = value;
|
|
27536
|
+
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
27537
|
+
out = out.replace(URL_PATTERN, (match) => {
|
|
27538
|
+
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
27539
|
+
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
27540
|
+
return `${redactUrl(core2)}${trailing}`;
|
|
27541
|
+
});
|
|
27542
|
+
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
27543
|
+
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
27544
|
+
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
27545
|
+
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
27546
|
+
if (out.length > MAX_VALUE_LENGTH) {
|
|
27547
|
+
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
27548
|
+
}
|
|
27549
|
+
return out;
|
|
27550
|
+
}
|
|
27551
|
+
function redactValue(value) {
|
|
27552
|
+
return redactValueDetectors(value);
|
|
27553
|
+
}
|
|
27554
|
+
function redactError(error) {
|
|
27555
|
+
const safe = new Error(redactValueDetectors(error.message ?? ""));
|
|
27556
|
+
safe.name = error.name;
|
|
27557
|
+
safe.stack = typeof error.stack === "string" ? redactValueDetectors(error.stack) : undefined;
|
|
27558
|
+
return safe;
|
|
27559
|
+
}
|
|
27560
|
+
function nameTokens(name) {
|
|
27561
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s._-]+/).map((t) => t.toLowerCase()).filter(Boolean);
|
|
27562
|
+
}
|
|
27563
|
+
function isSensitiveName(name) {
|
|
27564
|
+
const tokens = nameTokens(name);
|
|
27565
|
+
for (let i = 0;i < tokens.length; i++) {
|
|
27566
|
+
const token = tokens[i];
|
|
27567
|
+
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
27568
|
+
return true;
|
|
27569
|
+
}
|
|
27570
|
+
if (token === "key" || token === "keys") {
|
|
27571
|
+
const prev = tokens[i - 1];
|
|
27572
|
+
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
27573
|
+
return true;
|
|
27574
|
+
}
|
|
27575
|
+
}
|
|
27576
|
+
}
|
|
27577
|
+
return false;
|
|
27578
|
+
}
|
|
27579
|
+
function redactProperty(name, value) {
|
|
27580
|
+
if (value === undefined || value === null) {
|
|
27581
|
+
return;
|
|
27582
|
+
}
|
|
27583
|
+
if (isSensitiveName(name)) {
|
|
27584
|
+
return REDACTED;
|
|
27585
|
+
}
|
|
27586
|
+
if (typeof value === "boolean" || typeof value === "number") {
|
|
27587
|
+
return value;
|
|
27588
|
+
}
|
|
27589
|
+
if (typeof value !== "string") {
|
|
27590
|
+
return "[OBJECT]";
|
|
27591
|
+
}
|
|
27592
|
+
return redactValueDetectors(value);
|
|
27593
|
+
}
|
|
27594
|
+
function redactProperties(properties) {
|
|
27595
|
+
const out = {};
|
|
27596
|
+
for (const [name, value] of Object.entries(properties)) {
|
|
27597
|
+
const redacted = redactProperty(name, value);
|
|
27598
|
+
if (redacted !== undefined) {
|
|
27599
|
+
out[name] = redacted;
|
|
27600
|
+
}
|
|
27601
|
+
}
|
|
27602
|
+
return out;
|
|
27603
|
+
}
|
|
27604
|
+
|
|
27437
27605
|
// ../common/src/telemetry/telemetry-service.ts
|
|
27606
|
+
var TELEMETRY_OPERATION_ID_PROPERTY = "uip.trace.operation_id";
|
|
27607
|
+
var TELEMETRY_PARENT_ID_PROPERTY = "uip.trace.parent_id";
|
|
27608
|
+
var TELEMETRY_SPAN_ID_PROPERTY = "uip.trace.span_id";
|
|
27609
|
+
|
|
27438
27610
|
class TelemetryService {
|
|
27439
27611
|
telemetryProvider;
|
|
27440
27612
|
contextStorage;
|
|
@@ -27461,11 +27633,15 @@ class TelemetryService {
|
|
|
27461
27633
|
trackException(error, properties) {
|
|
27462
27634
|
const context = this.getCurrentContext();
|
|
27463
27635
|
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
27464
|
-
this.telemetryProvider.trackException(error, enrichedProperties);
|
|
27636
|
+
this.telemetryProvider.trackException(redactError(error), enrichedProperties);
|
|
27465
27637
|
}
|
|
27466
27638
|
async trackRequest(name, fn, properties) {
|
|
27639
|
+
const parentContext = this.getCurrentContext();
|
|
27640
|
+
const operationId = parentContext?.operationId ?? this.operationId ?? getTelemetryOperationId();
|
|
27641
|
+
const parentId = parentContext ? parentContext.id : this.inboundParentIdFor(operationId);
|
|
27467
27642
|
const context = {
|
|
27468
|
-
operationId
|
|
27643
|
+
operationId,
|
|
27644
|
+
...parentId !== undefined ? { parentId } : {},
|
|
27469
27645
|
id: this.generateId()
|
|
27470
27646
|
};
|
|
27471
27647
|
const startTime = performance.now();
|
|
@@ -27483,6 +27659,45 @@ class TelemetryService {
|
|
|
27483
27659
|
throw error;
|
|
27484
27660
|
}
|
|
27485
27661
|
}
|
|
27662
|
+
trackRequestResult(name, durationMs, success, properties, context) {
|
|
27663
|
+
const requestContext = context ?? {
|
|
27664
|
+
operationId: this.operationId ?? getTelemetryOperationId(),
|
|
27665
|
+
id: this.generateId()
|
|
27666
|
+
};
|
|
27667
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, requestContext);
|
|
27668
|
+
this.telemetryProvider.trackRequest(name, durationMs, success, enrichedProperties);
|
|
27669
|
+
}
|
|
27670
|
+
createRequestContext() {
|
|
27671
|
+
const operationId = this.operationId ?? getTelemetryOperationId();
|
|
27672
|
+
const parentId = this.inboundParentIdFor(operationId);
|
|
27673
|
+
return {
|
|
27674
|
+
operationId,
|
|
27675
|
+
...parentId !== undefined ? { parentId } : {},
|
|
27676
|
+
id: this.generateId()
|
|
27677
|
+
};
|
|
27678
|
+
}
|
|
27679
|
+
inboundParentIdFor(operationId) {
|
|
27680
|
+
const inbound = getInboundTraceContext();
|
|
27681
|
+
return inbound && inbound.traceId === operationId ? inbound.parentSpanId : undefined;
|
|
27682
|
+
}
|
|
27683
|
+
runWithContext(context, fn) {
|
|
27684
|
+
return this.contextStorage.run(context, fn);
|
|
27685
|
+
}
|
|
27686
|
+
createDependencyContext() {
|
|
27687
|
+
const parentContext = this.getCurrentContext();
|
|
27688
|
+
if (!parentContext) {
|
|
27689
|
+
return;
|
|
27690
|
+
}
|
|
27691
|
+
return {
|
|
27692
|
+
operationId: parentContext.operationId,
|
|
27693
|
+
parentId: parentContext.id,
|
|
27694
|
+
id: this.generateId()
|
|
27695
|
+
};
|
|
27696
|
+
}
|
|
27697
|
+
trackDependencyResult(name, type2, durationMs, success, properties, context, resultCode) {
|
|
27698
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
27699
|
+
this.telemetryProvider.trackDependency(redactValue(name), type2, durationMs, success, enrichedProperties, resultCode);
|
|
27700
|
+
}
|
|
27486
27701
|
async trackDependencyOperation(name, type2, fn, properties) {
|
|
27487
27702
|
const parentContext = this.getCurrentContext();
|
|
27488
27703
|
if (!parentContext) {
|
|
@@ -27519,8 +27734,12 @@ class TelemetryService {
|
|
|
27519
27734
|
...getExecutionContextTelemetryProperties(),
|
|
27520
27735
|
...globalProperties,
|
|
27521
27736
|
...this.defaultProperties,
|
|
27522
|
-
...properties,
|
|
27523
|
-
...context
|
|
27737
|
+
...redactProperties(properties ?? {}),
|
|
27738
|
+
...context ? {
|
|
27739
|
+
[TELEMETRY_OPERATION_ID_PROPERTY]: context.operationId,
|
|
27740
|
+
...context.parentId !== undefined ? { [TELEMETRY_PARENT_ID_PROPERTY]: context.parentId } : {},
|
|
27741
|
+
[TELEMETRY_SPAN_ID_PROPERTY]: context.id
|
|
27742
|
+
} : {}
|
|
27524
27743
|
};
|
|
27525
27744
|
if (sessionId === undefined) {
|
|
27526
27745
|
delete enriched[TELEMETRY_SESSION_ID_PROPERTY];
|
|
@@ -27530,7 +27749,16 @@ class TelemetryService {
|
|
|
27530
27749
|
return enriched;
|
|
27531
27750
|
}
|
|
27532
27751
|
generateId() {
|
|
27533
|
-
|
|
27752
|
+
const bytes = new Uint8Array(8);
|
|
27753
|
+
let hex = "";
|
|
27754
|
+
do {
|
|
27755
|
+
crypto.getRandomValues(bytes);
|
|
27756
|
+
hex = "";
|
|
27757
|
+
for (const byte of bytes) {
|
|
27758
|
+
hex += byte.toString(16).padStart(2, "0");
|
|
27759
|
+
}
|
|
27760
|
+
} while (/^0+$/.test(hex));
|
|
27761
|
+
return hex;
|
|
27534
27762
|
}
|
|
27535
27763
|
}
|
|
27536
27764
|
// ../common/src/telemetry/node-appinsights-telemetry-provider.ts
|
|
@@ -28232,134 +28460,11 @@ function buildCommandTelemetryAttribution(commandPath, skillSource) {
|
|
|
28232
28460
|
};
|
|
28233
28461
|
}
|
|
28234
28462
|
|
|
28235
|
-
// ../common/src/telemetry/pii-redactor.ts
|
|
28236
|
-
var REDACTED = "[REDACTED]";
|
|
28237
|
-
var MAX_VALUE_LENGTH = 200;
|
|
28238
|
-
var SENSITIVE_NAME_TOKENS = new Set([
|
|
28239
|
-
"token",
|
|
28240
|
-
"tokens",
|
|
28241
|
-
"secret",
|
|
28242
|
-
"secrets",
|
|
28243
|
-
"password",
|
|
28244
|
-
"passwords",
|
|
28245
|
-
"pwd",
|
|
28246
|
-
"credential",
|
|
28247
|
-
"credentials",
|
|
28248
|
-
"auth",
|
|
28249
|
-
"authentication",
|
|
28250
|
-
"authorization",
|
|
28251
|
-
"authority",
|
|
28252
|
-
"cert",
|
|
28253
|
-
"certificate",
|
|
28254
|
-
"certificates"
|
|
28255
|
-
]);
|
|
28256
|
-
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
28257
|
-
"api",
|
|
28258
|
-
"access",
|
|
28259
|
-
"client",
|
|
28260
|
-
"private",
|
|
28261
|
-
"public",
|
|
28262
|
-
"signing",
|
|
28263
|
-
"encryption",
|
|
28264
|
-
"session",
|
|
28265
|
-
"master",
|
|
28266
|
-
"shared",
|
|
28267
|
-
"root",
|
|
28268
|
-
"ssh",
|
|
28269
|
-
"rsa",
|
|
28270
|
-
"aes",
|
|
28271
|
-
"hmac",
|
|
28272
|
-
"oauth"
|
|
28273
|
-
]);
|
|
28274
|
-
var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
28275
|
-
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
28276
|
-
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
28277
|
-
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
28278
|
-
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
28279
|
-
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
28280
|
-
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
28281
|
-
function shortHash(input) {
|
|
28282
|
-
let hash = 2166136261;
|
|
28283
|
-
for (let i = 0;i < input.length; i++) {
|
|
28284
|
-
hash ^= input.charCodeAt(i);
|
|
28285
|
-
hash = Math.imul(hash, 16777619);
|
|
28286
|
-
}
|
|
28287
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
28288
|
-
}
|
|
28289
|
-
function redactUrl(raw) {
|
|
28290
|
-
try {
|
|
28291
|
-
const url = new URL(raw);
|
|
28292
|
-
return `${url.protocol}//${url.host}`;
|
|
28293
|
-
} catch {
|
|
28294
|
-
return `url#${shortHash(raw)}`;
|
|
28295
|
-
}
|
|
28296
|
-
}
|
|
28297
|
-
function redactValueDetectors(value) {
|
|
28298
|
-
let out = value;
|
|
28299
|
-
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
28300
|
-
out = out.replace(URL_PATTERN, (match) => {
|
|
28301
|
-
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
28302
|
-
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
28303
|
-
return `${redactUrl(core2)}${trailing}`;
|
|
28304
|
-
});
|
|
28305
|
-
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
28306
|
-
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
28307
|
-
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
28308
|
-
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
28309
|
-
if (out.length > MAX_VALUE_LENGTH) {
|
|
28310
|
-
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
28311
|
-
}
|
|
28312
|
-
return out;
|
|
28313
|
-
}
|
|
28314
|
-
function nameTokens(name) {
|
|
28315
|
-
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s_-]+/).map((t) => t.toLowerCase()).filter(Boolean);
|
|
28316
|
-
}
|
|
28317
|
-
function isSensitiveName(name) {
|
|
28318
|
-
const tokens = nameTokens(name);
|
|
28319
|
-
for (let i = 0;i < tokens.length; i++) {
|
|
28320
|
-
const token = tokens[i];
|
|
28321
|
-
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
28322
|
-
return true;
|
|
28323
|
-
}
|
|
28324
|
-
if (token === "key" || token === "keys") {
|
|
28325
|
-
const prev = tokens[i - 1];
|
|
28326
|
-
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
28327
|
-
return true;
|
|
28328
|
-
}
|
|
28329
|
-
}
|
|
28330
|
-
}
|
|
28331
|
-
return false;
|
|
28332
|
-
}
|
|
28333
|
-
function redactProperty(name, value) {
|
|
28334
|
-
if (value === undefined || value === null) {
|
|
28335
|
-
return;
|
|
28336
|
-
}
|
|
28337
|
-
if (isSensitiveName(name)) {
|
|
28338
|
-
return REDACTED;
|
|
28339
|
-
}
|
|
28340
|
-
if (typeof value === "boolean" || typeof value === "number") {
|
|
28341
|
-
return value;
|
|
28342
|
-
}
|
|
28343
|
-
if (typeof value !== "string") {
|
|
28344
|
-
return "[OBJECT]";
|
|
28345
|
-
}
|
|
28346
|
-
return redactValueDetectors(value);
|
|
28347
|
-
}
|
|
28348
|
-
function redactProperties(properties) {
|
|
28349
|
-
const out = {};
|
|
28350
|
-
for (const [name, value] of Object.entries(properties)) {
|
|
28351
|
-
const redacted = redactProperty(name, value);
|
|
28352
|
-
if (redacted !== undefined) {
|
|
28353
|
-
out[name] = redacted;
|
|
28354
|
-
}
|
|
28355
|
-
}
|
|
28356
|
-
return out;
|
|
28357
|
-
}
|
|
28358
|
-
|
|
28359
28463
|
// ../common/src/trackedAction.ts
|
|
28360
28464
|
var pollSignalSlot = singleton("PollSignal");
|
|
28361
28465
|
var cliErrorCodeValues = new Set(CLI_ERROR_CODES);
|
|
28362
28466
|
var retryHintValues = new Set(RETRY_HINTS);
|
|
28467
|
+
var TELEMETRY_COMMAND_ARG_PREFIX = "uip.cmd.arg.";
|
|
28363
28468
|
var processContext = {
|
|
28364
28469
|
exit: (code) => {
|
|
28365
28470
|
process.exitCode = code;
|
|
@@ -28370,22 +28475,18 @@ var processContext = {
|
|
|
28370
28475
|
};
|
|
28371
28476
|
function extractCommandParams(cmd) {
|
|
28372
28477
|
const params = {};
|
|
28478
|
+
const add2 = (name, value) => {
|
|
28479
|
+
if (name && value !== undefined) {
|
|
28480
|
+
params[`${TELEMETRY_COMMAND_ARG_PREFIX}${name}`] = value;
|
|
28481
|
+
}
|
|
28482
|
+
};
|
|
28373
28483
|
const registered = cmd.registeredArguments ?? [];
|
|
28374
28484
|
const processed = cmd.processedArgs ?? [];
|
|
28375
28485
|
for (let i = 0;i < registered.length; i++) {
|
|
28376
|
-
|
|
28377
|
-
if (value === undefined) {
|
|
28378
|
-
continue;
|
|
28379
|
-
}
|
|
28380
|
-
const name = registered[i].name();
|
|
28381
|
-
if (name) {
|
|
28382
|
-
params[name] = value;
|
|
28383
|
-
}
|
|
28486
|
+
add2(registered[i].name(), processed[i]);
|
|
28384
28487
|
}
|
|
28385
28488
|
for (const [key, value] of Object.entries(cmd.opts())) {
|
|
28386
|
-
|
|
28387
|
-
params[key] = value;
|
|
28388
|
-
}
|
|
28489
|
+
add2(key, value);
|
|
28389
28490
|
}
|
|
28390
28491
|
return params;
|
|
28391
28492
|
}
|
|
@@ -28428,11 +28529,12 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
28428
28529
|
return this.action(async (...args) => {
|
|
28429
28530
|
const telemetryName = deriveCommandPath(command);
|
|
28430
28531
|
const props = typeof properties === "function" ? properties(...args) : properties;
|
|
28532
|
+
const requestContext = telemetry.createRequestContext();
|
|
28431
28533
|
const startTime = performance.now();
|
|
28432
28534
|
let errorMessage;
|
|
28433
28535
|
let fallbackExitCode = EXIT_CODES.Success;
|
|
28434
28536
|
clearRecordedCommandFailureTelemetry();
|
|
28435
|
-
const [error] = await catchError(fn(...args));
|
|
28537
|
+
const [error] = await catchError(telemetry.runWithContext(requestContext, () => fn(...args)));
|
|
28436
28538
|
if (error) {
|
|
28437
28539
|
errorMessage = error instanceof Error ? error.message : String(error);
|
|
28438
28540
|
logger.debug(`[trackedAction] ${telemetryName} failed: ${errorMessage}`);
|
|
@@ -28468,16 +28570,21 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
28468
28570
|
recordedFailure,
|
|
28469
28571
|
pollSignal: context.pollSignal
|
|
28470
28572
|
});
|
|
28471
|
-
|
|
28472
|
-
|
|
28573
|
+
const commandParams = extractCommandParams(command);
|
|
28574
|
+
if (props) {
|
|
28575
|
+
for (const key of Object.keys(props)) {
|
|
28576
|
+
delete commandParams[`${TELEMETRY_COMMAND_ARG_PREFIX}${key}`];
|
|
28577
|
+
}
|
|
28578
|
+
}
|
|
28579
|
+
const baseProperties = redactProperties({
|
|
28580
|
+
...commandParams,
|
|
28473
28581
|
...props,
|
|
28474
28582
|
...buildCommandTelemetryAttribution(telemetryName, process.env.UIPATH_SKILL),
|
|
28475
28583
|
command: "true",
|
|
28476
|
-
duration: String(durationMs),
|
|
28477
|
-
success: String(success),
|
|
28478
28584
|
...terminalTelemetry,
|
|
28479
28585
|
...errorMessage ? { errorMessage } : {}
|
|
28480
|
-
})
|
|
28586
|
+
});
|
|
28587
|
+
telemetry.trackRequestResult(telemetryName, durationMs, success, baseProperties, requestContext);
|
|
28481
28588
|
});
|
|
28482
28589
|
};
|
|
28483
28590
|
|
|
@@ -29811,7 +29918,7 @@ init_server();
|
|
|
29811
29918
|
var package_default2 = {
|
|
29812
29919
|
name: "@uipath/ixp-sdk",
|
|
29813
29920
|
license: "MIT",
|
|
29814
|
-
version: "1.198.0
|
|
29921
|
+
version: "1.198.0",
|
|
29815
29922
|
description: "SDK for the UiPath IXP (Intelligent eXtraction Platform) API — projects, taxonomies, prompts, predictions, and model publishing.",
|
|
29816
29923
|
repository: {
|
|
29817
29924
|
type: "git",
|
|
@@ -32399,4 +32506,4 @@ export {
|
|
|
32399
32506
|
metadata
|
|
32400
32507
|
};
|
|
32401
32508
|
|
|
32402
|
-
//# debugId=
|
|
32509
|
+
//# debugId=98EF980406D299AE64756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/ixp-tool",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "1.198.0
|
|
4
|
+
"version": "1.198.0",
|
|
5
5
|
"description": "Manage UiPath IXP projects, prompts, predictions, and model publishing.",
|
|
6
6
|
"private": false,
|
|
7
7
|
"repository": {
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "1fadf03d7a8dd102742571dff569fdac11808afb"
|
|
30
30
|
}
|