@uipath/solution-tool 1.199.0-preview.91 → 1.199.0-preview.97
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/deploy.js +257 -150
- package/dist/init.js +257 -150
- package/dist/pack.js +546 -298
- package/dist/publish.js +257 -150
- package/dist/resource.js +256 -149
- package/dist/tool.js +547 -299
- package/package.json +2 -2
package/dist/tool.js
CHANGED
|
@@ -30536,7 +30536,7 @@ import"./packager-tool.js";
|
|
|
30536
30536
|
var package_default = {
|
|
30537
30537
|
name: "@uipath/solution-tool",
|
|
30538
30538
|
license: "MIT",
|
|
30539
|
-
version: "1.199.0-preview.
|
|
30539
|
+
version: "1.199.0-preview.97",
|
|
30540
30540
|
description: "Create, pack, publish, and deploy UiPath Automation Solutions.",
|
|
30541
30541
|
repository: {
|
|
30542
30542
|
type: "git",
|
|
@@ -36766,11 +36766,36 @@ class NodeContextStorage {
|
|
|
36766
36766
|
return this.storage.getStore();
|
|
36767
36767
|
}
|
|
36768
36768
|
}
|
|
36769
|
+
// ../common/src/telemetry/trace-context.ts
|
|
36770
|
+
var TELEMETRY_TRACEPARENT_ENV = "TRACEPARENT";
|
|
36771
|
+
var TRACEPARENT_PATTERN = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/;
|
|
36772
|
+
function getProcessEnv() {
|
|
36773
|
+
return globalThis.process?.env;
|
|
36774
|
+
}
|
|
36775
|
+
function parseInboundTraceparent(value) {
|
|
36776
|
+
if (!value) {
|
|
36777
|
+
return;
|
|
36778
|
+
}
|
|
36779
|
+
const match = TRACEPARENT_PATTERN.exec(value.trim().toLowerCase());
|
|
36780
|
+
if (!match) {
|
|
36781
|
+
return;
|
|
36782
|
+
}
|
|
36783
|
+
const [, traceId, parentSpanId] = match;
|
|
36784
|
+
if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId)) {
|
|
36785
|
+
return;
|
|
36786
|
+
}
|
|
36787
|
+
return { traceId, parentSpanId };
|
|
36788
|
+
}
|
|
36789
|
+
function getInboundTraceContext() {
|
|
36790
|
+
return parseInboundTraceparent(getProcessEnv()?.[TELEMETRY_TRACEPARENT_ENV]);
|
|
36791
|
+
}
|
|
36792
|
+
|
|
36769
36793
|
// ../common/src/telemetry/session-id.ts
|
|
36770
36794
|
var TELEMETRY_SESSION_ID_ENV = "UIPATH_SESSION_ID";
|
|
36771
36795
|
var TELEMETRY_SESSION_ID_PROPERTY = "session_id";
|
|
36772
36796
|
var telemetrySessionIdSlot = singleton("TelemetrySessionId");
|
|
36773
|
-
|
|
36797
|
+
var telemetryOperationIdSlot = singleton("TelemetryOperationId");
|
|
36798
|
+
function getProcessEnv2() {
|
|
36774
36799
|
return globalThis.process?.env;
|
|
36775
36800
|
}
|
|
36776
36801
|
function normalizeSessionId(value) {
|
|
@@ -36781,18 +36806,165 @@ function normalizeSessionId(value) {
|
|
|
36781
36806
|
return trimmed || undefined;
|
|
36782
36807
|
}
|
|
36783
36808
|
function getConfiguredTelemetrySessionId() {
|
|
36784
|
-
return normalizeSessionId(
|
|
36809
|
+
return normalizeSessionId(getProcessEnv2()?.[TELEMETRY_SESSION_ID_ENV]);
|
|
36785
36810
|
}
|
|
36786
36811
|
function resolveTelemetrySessionId(existingSessionId) {
|
|
36787
36812
|
return getConfiguredTelemetrySessionId() ?? normalizeSessionId(existingSessionId);
|
|
36788
36813
|
}
|
|
36814
|
+
function getTelemetryOperationId() {
|
|
36815
|
+
const existing = telemetryOperationIdSlot.get();
|
|
36816
|
+
if (existing) {
|
|
36817
|
+
return existing;
|
|
36818
|
+
}
|
|
36819
|
+
const inboundTraceId = getInboundTraceContext()?.traceId;
|
|
36820
|
+
const generated = inboundTraceId ?? crypto.randomUUID().replaceAll("-", "");
|
|
36821
|
+
telemetryOperationIdSlot.set(generated);
|
|
36822
|
+
return generated;
|
|
36823
|
+
}
|
|
36789
36824
|
// ../common/src/telemetry/global-telemetry-properties.ts
|
|
36790
36825
|
var telemetryPropsSlot = singleton("TelemetryDefaultProps");
|
|
36791
36826
|
function getGlobalTelemetryProperties() {
|
|
36792
36827
|
return telemetryPropsSlot.get();
|
|
36793
36828
|
}
|
|
36794
36829
|
|
|
36830
|
+
// ../common/src/telemetry/pii-redactor.ts
|
|
36831
|
+
var REDACTED = "[REDACTED]";
|
|
36832
|
+
var MAX_VALUE_LENGTH = 200;
|
|
36833
|
+
var SENSITIVE_NAME_TOKENS = new Set([
|
|
36834
|
+
"token",
|
|
36835
|
+
"tokens",
|
|
36836
|
+
"secret",
|
|
36837
|
+
"secrets",
|
|
36838
|
+
"password",
|
|
36839
|
+
"passwords",
|
|
36840
|
+
"pwd",
|
|
36841
|
+
"credential",
|
|
36842
|
+
"credentials",
|
|
36843
|
+
"auth",
|
|
36844
|
+
"authentication",
|
|
36845
|
+
"authorization",
|
|
36846
|
+
"authority",
|
|
36847
|
+
"cert",
|
|
36848
|
+
"certificate",
|
|
36849
|
+
"certificates"
|
|
36850
|
+
]);
|
|
36851
|
+
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
36852
|
+
"api",
|
|
36853
|
+
"access",
|
|
36854
|
+
"client",
|
|
36855
|
+
"private",
|
|
36856
|
+
"public",
|
|
36857
|
+
"signing",
|
|
36858
|
+
"encryption",
|
|
36859
|
+
"session",
|
|
36860
|
+
"master",
|
|
36861
|
+
"shared",
|
|
36862
|
+
"root",
|
|
36863
|
+
"ssh",
|
|
36864
|
+
"rsa",
|
|
36865
|
+
"aes",
|
|
36866
|
+
"hmac",
|
|
36867
|
+
"oauth"
|
|
36868
|
+
]);
|
|
36869
|
+
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;
|
|
36870
|
+
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
36871
|
+
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
36872
|
+
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
36873
|
+
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
36874
|
+
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
36875
|
+
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
36876
|
+
function shortHash(input) {
|
|
36877
|
+
let hash = 2166136261;
|
|
36878
|
+
for (let i = 0;i < input.length; i++) {
|
|
36879
|
+
hash ^= input.charCodeAt(i);
|
|
36880
|
+
hash = Math.imul(hash, 16777619);
|
|
36881
|
+
}
|
|
36882
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
36883
|
+
}
|
|
36884
|
+
function redactUrl(raw) {
|
|
36885
|
+
try {
|
|
36886
|
+
const url = new URL(raw);
|
|
36887
|
+
return `${url.protocol}//${url.host}`;
|
|
36888
|
+
} catch {
|
|
36889
|
+
return `url#${shortHash(raw)}`;
|
|
36890
|
+
}
|
|
36891
|
+
}
|
|
36892
|
+
function redactValueDetectors(value) {
|
|
36893
|
+
let out = value;
|
|
36894
|
+
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
36895
|
+
out = out.replace(URL_PATTERN, (match) => {
|
|
36896
|
+
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
36897
|
+
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
36898
|
+
return `${redactUrl(core2)}${trailing}`;
|
|
36899
|
+
});
|
|
36900
|
+
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
36901
|
+
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
36902
|
+
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
36903
|
+
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
36904
|
+
if (out.length > MAX_VALUE_LENGTH) {
|
|
36905
|
+
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
36906
|
+
}
|
|
36907
|
+
return out;
|
|
36908
|
+
}
|
|
36909
|
+
function redactValue(value) {
|
|
36910
|
+
return redactValueDetectors(value);
|
|
36911
|
+
}
|
|
36912
|
+
function redactError(error) {
|
|
36913
|
+
const safe = new Error(redactValueDetectors(error.message ?? ""));
|
|
36914
|
+
safe.name = error.name;
|
|
36915
|
+
safe.stack = typeof error.stack === "string" ? redactValueDetectors(error.stack) : undefined;
|
|
36916
|
+
return safe;
|
|
36917
|
+
}
|
|
36918
|
+
function nameTokens(name) {
|
|
36919
|
+
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);
|
|
36920
|
+
}
|
|
36921
|
+
function isSensitiveName(name) {
|
|
36922
|
+
const tokens = nameTokens(name);
|
|
36923
|
+
for (let i = 0;i < tokens.length; i++) {
|
|
36924
|
+
const token = tokens[i];
|
|
36925
|
+
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
36926
|
+
return true;
|
|
36927
|
+
}
|
|
36928
|
+
if (token === "key" || token === "keys") {
|
|
36929
|
+
const prev = tokens[i - 1];
|
|
36930
|
+
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
36931
|
+
return true;
|
|
36932
|
+
}
|
|
36933
|
+
}
|
|
36934
|
+
}
|
|
36935
|
+
return false;
|
|
36936
|
+
}
|
|
36937
|
+
function redactProperty(name, value) {
|
|
36938
|
+
if (value === undefined || value === null) {
|
|
36939
|
+
return;
|
|
36940
|
+
}
|
|
36941
|
+
if (isSensitiveName(name)) {
|
|
36942
|
+
return REDACTED;
|
|
36943
|
+
}
|
|
36944
|
+
if (typeof value === "boolean" || typeof value === "number") {
|
|
36945
|
+
return value;
|
|
36946
|
+
}
|
|
36947
|
+
if (typeof value !== "string") {
|
|
36948
|
+
return "[OBJECT]";
|
|
36949
|
+
}
|
|
36950
|
+
return redactValueDetectors(value);
|
|
36951
|
+
}
|
|
36952
|
+
function redactProperties(properties) {
|
|
36953
|
+
const out = {};
|
|
36954
|
+
for (const [name, value] of Object.entries(properties)) {
|
|
36955
|
+
const redacted = redactProperty(name, value);
|
|
36956
|
+
if (redacted !== undefined) {
|
|
36957
|
+
out[name] = redacted;
|
|
36958
|
+
}
|
|
36959
|
+
}
|
|
36960
|
+
return out;
|
|
36961
|
+
}
|
|
36962
|
+
|
|
36795
36963
|
// ../common/src/telemetry/telemetry-service.ts
|
|
36964
|
+
var TELEMETRY_OPERATION_ID_PROPERTY = "uip.trace.operation_id";
|
|
36965
|
+
var TELEMETRY_PARENT_ID_PROPERTY = "uip.trace.parent_id";
|
|
36966
|
+
var TELEMETRY_SPAN_ID_PROPERTY = "uip.trace.span_id";
|
|
36967
|
+
|
|
36796
36968
|
class TelemetryService {
|
|
36797
36969
|
telemetryProvider;
|
|
36798
36970
|
contextStorage;
|
|
@@ -36819,11 +36991,15 @@ class TelemetryService {
|
|
|
36819
36991
|
trackException(error, properties) {
|
|
36820
36992
|
const context = this.getCurrentContext();
|
|
36821
36993
|
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
36822
|
-
this.telemetryProvider.trackException(error, enrichedProperties);
|
|
36994
|
+
this.telemetryProvider.trackException(redactError(error), enrichedProperties);
|
|
36823
36995
|
}
|
|
36824
36996
|
async trackRequest(name, fn, properties) {
|
|
36997
|
+
const parentContext = this.getCurrentContext();
|
|
36998
|
+
const operationId = parentContext?.operationId ?? this.operationId ?? getTelemetryOperationId();
|
|
36999
|
+
const parentId = parentContext ? parentContext.id : this.inboundParentIdFor(operationId);
|
|
36825
37000
|
const context = {
|
|
36826
|
-
operationId
|
|
37001
|
+
operationId,
|
|
37002
|
+
...parentId !== undefined ? { parentId } : {},
|
|
36827
37003
|
id: this.generateId()
|
|
36828
37004
|
};
|
|
36829
37005
|
const startTime = performance.now();
|
|
@@ -36841,6 +37017,45 @@ class TelemetryService {
|
|
|
36841
37017
|
throw error;
|
|
36842
37018
|
}
|
|
36843
37019
|
}
|
|
37020
|
+
trackRequestResult(name, durationMs, success, properties, context) {
|
|
37021
|
+
const requestContext = context ?? {
|
|
37022
|
+
operationId: this.operationId ?? getTelemetryOperationId(),
|
|
37023
|
+
id: this.generateId()
|
|
37024
|
+
};
|
|
37025
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, requestContext);
|
|
37026
|
+
this.telemetryProvider.trackRequest(name, durationMs, success, enrichedProperties);
|
|
37027
|
+
}
|
|
37028
|
+
createRequestContext() {
|
|
37029
|
+
const operationId = this.operationId ?? getTelemetryOperationId();
|
|
37030
|
+
const parentId = this.inboundParentIdFor(operationId);
|
|
37031
|
+
return {
|
|
37032
|
+
operationId,
|
|
37033
|
+
...parentId !== undefined ? { parentId } : {},
|
|
37034
|
+
id: this.generateId()
|
|
37035
|
+
};
|
|
37036
|
+
}
|
|
37037
|
+
inboundParentIdFor(operationId) {
|
|
37038
|
+
const inbound = getInboundTraceContext();
|
|
37039
|
+
return inbound && inbound.traceId === operationId ? inbound.parentSpanId : undefined;
|
|
37040
|
+
}
|
|
37041
|
+
runWithContext(context, fn) {
|
|
37042
|
+
return this.contextStorage.run(context, fn);
|
|
37043
|
+
}
|
|
37044
|
+
createDependencyContext() {
|
|
37045
|
+
const parentContext = this.getCurrentContext();
|
|
37046
|
+
if (!parentContext) {
|
|
37047
|
+
return;
|
|
37048
|
+
}
|
|
37049
|
+
return {
|
|
37050
|
+
operationId: parentContext.operationId,
|
|
37051
|
+
parentId: parentContext.id,
|
|
37052
|
+
id: this.generateId()
|
|
37053
|
+
};
|
|
37054
|
+
}
|
|
37055
|
+
trackDependencyResult(name, type2, durationMs, success, properties, context, resultCode) {
|
|
37056
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
37057
|
+
this.telemetryProvider.trackDependency(redactValue(name), type2, durationMs, success, enrichedProperties, resultCode);
|
|
37058
|
+
}
|
|
36844
37059
|
async trackDependencyOperation(name, type2, fn, properties) {
|
|
36845
37060
|
const parentContext = this.getCurrentContext();
|
|
36846
37061
|
if (!parentContext) {
|
|
@@ -36877,8 +37092,12 @@ class TelemetryService {
|
|
|
36877
37092
|
...getExecutionContextTelemetryProperties(),
|
|
36878
37093
|
...globalProperties,
|
|
36879
37094
|
...this.defaultProperties,
|
|
36880
|
-
...properties,
|
|
36881
|
-
...context
|
|
37095
|
+
...redactProperties(properties ?? {}),
|
|
37096
|
+
...context ? {
|
|
37097
|
+
[TELEMETRY_OPERATION_ID_PROPERTY]: context.operationId,
|
|
37098
|
+
...context.parentId !== undefined ? { [TELEMETRY_PARENT_ID_PROPERTY]: context.parentId } : {},
|
|
37099
|
+
[TELEMETRY_SPAN_ID_PROPERTY]: context.id
|
|
37100
|
+
} : {}
|
|
36882
37101
|
};
|
|
36883
37102
|
if (sessionId === undefined) {
|
|
36884
37103
|
delete enriched[TELEMETRY_SESSION_ID_PROPERTY];
|
|
@@ -36888,7 +37107,16 @@ class TelemetryService {
|
|
|
36888
37107
|
return enriched;
|
|
36889
37108
|
}
|
|
36890
37109
|
generateId() {
|
|
36891
|
-
|
|
37110
|
+
const bytes = new Uint8Array(8);
|
|
37111
|
+
let hex = "";
|
|
37112
|
+
do {
|
|
37113
|
+
crypto.getRandomValues(bytes);
|
|
37114
|
+
hex = "";
|
|
37115
|
+
for (const byte of bytes) {
|
|
37116
|
+
hex += byte.toString(16).padStart(2, "0");
|
|
37117
|
+
}
|
|
37118
|
+
} while (/^0+$/.test(hex));
|
|
37119
|
+
return hex;
|
|
36892
37120
|
}
|
|
36893
37121
|
}
|
|
36894
37122
|
// ../common/src/telemetry/node-appinsights-telemetry-provider.ts
|
|
@@ -37612,134 +37840,11 @@ function buildCommandTelemetryAttribution(commandPath, skillSource) {
|
|
|
37612
37840
|
};
|
|
37613
37841
|
}
|
|
37614
37842
|
|
|
37615
|
-
// ../common/src/telemetry/pii-redactor.ts
|
|
37616
|
-
var REDACTED = "[REDACTED]";
|
|
37617
|
-
var MAX_VALUE_LENGTH = 200;
|
|
37618
|
-
var SENSITIVE_NAME_TOKENS = new Set([
|
|
37619
|
-
"token",
|
|
37620
|
-
"tokens",
|
|
37621
|
-
"secret",
|
|
37622
|
-
"secrets",
|
|
37623
|
-
"password",
|
|
37624
|
-
"passwords",
|
|
37625
|
-
"pwd",
|
|
37626
|
-
"credential",
|
|
37627
|
-
"credentials",
|
|
37628
|
-
"auth",
|
|
37629
|
-
"authentication",
|
|
37630
|
-
"authorization",
|
|
37631
|
-
"authority",
|
|
37632
|
-
"cert",
|
|
37633
|
-
"certificate",
|
|
37634
|
-
"certificates"
|
|
37635
|
-
]);
|
|
37636
|
-
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
37637
|
-
"api",
|
|
37638
|
-
"access",
|
|
37639
|
-
"client",
|
|
37640
|
-
"private",
|
|
37641
|
-
"public",
|
|
37642
|
-
"signing",
|
|
37643
|
-
"encryption",
|
|
37644
|
-
"session",
|
|
37645
|
-
"master",
|
|
37646
|
-
"shared",
|
|
37647
|
-
"root",
|
|
37648
|
-
"ssh",
|
|
37649
|
-
"rsa",
|
|
37650
|
-
"aes",
|
|
37651
|
-
"hmac",
|
|
37652
|
-
"oauth"
|
|
37653
|
-
]);
|
|
37654
|
-
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;
|
|
37655
|
-
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
37656
|
-
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
37657
|
-
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
37658
|
-
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
37659
|
-
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
37660
|
-
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
37661
|
-
function shortHash(input) {
|
|
37662
|
-
let hash = 2166136261;
|
|
37663
|
-
for (let i = 0;i < input.length; i++) {
|
|
37664
|
-
hash ^= input.charCodeAt(i);
|
|
37665
|
-
hash = Math.imul(hash, 16777619);
|
|
37666
|
-
}
|
|
37667
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
37668
|
-
}
|
|
37669
|
-
function redactUrl(raw) {
|
|
37670
|
-
try {
|
|
37671
|
-
const url = new URL(raw);
|
|
37672
|
-
return `${url.protocol}//${url.host}`;
|
|
37673
|
-
} catch {
|
|
37674
|
-
return `url#${shortHash(raw)}`;
|
|
37675
|
-
}
|
|
37676
|
-
}
|
|
37677
|
-
function redactValueDetectors(value) {
|
|
37678
|
-
let out = value;
|
|
37679
|
-
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
37680
|
-
out = out.replace(URL_PATTERN, (match) => {
|
|
37681
|
-
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
37682
|
-
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
37683
|
-
return `${redactUrl(core2)}${trailing}`;
|
|
37684
|
-
});
|
|
37685
|
-
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
37686
|
-
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
37687
|
-
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
37688
|
-
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
37689
|
-
if (out.length > MAX_VALUE_LENGTH) {
|
|
37690
|
-
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
37691
|
-
}
|
|
37692
|
-
return out;
|
|
37693
|
-
}
|
|
37694
|
-
function nameTokens(name) {
|
|
37695
|
-
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);
|
|
37696
|
-
}
|
|
37697
|
-
function isSensitiveName(name) {
|
|
37698
|
-
const tokens = nameTokens(name);
|
|
37699
|
-
for (let i = 0;i < tokens.length; i++) {
|
|
37700
|
-
const token = tokens[i];
|
|
37701
|
-
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
37702
|
-
return true;
|
|
37703
|
-
}
|
|
37704
|
-
if (token === "key" || token === "keys") {
|
|
37705
|
-
const prev = tokens[i - 1];
|
|
37706
|
-
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
37707
|
-
return true;
|
|
37708
|
-
}
|
|
37709
|
-
}
|
|
37710
|
-
}
|
|
37711
|
-
return false;
|
|
37712
|
-
}
|
|
37713
|
-
function redactProperty(name, value) {
|
|
37714
|
-
if (value === undefined || value === null) {
|
|
37715
|
-
return;
|
|
37716
|
-
}
|
|
37717
|
-
if (isSensitiveName(name)) {
|
|
37718
|
-
return REDACTED;
|
|
37719
|
-
}
|
|
37720
|
-
if (typeof value === "boolean" || typeof value === "number") {
|
|
37721
|
-
return value;
|
|
37722
|
-
}
|
|
37723
|
-
if (typeof value !== "string") {
|
|
37724
|
-
return "[OBJECT]";
|
|
37725
|
-
}
|
|
37726
|
-
return redactValueDetectors(value);
|
|
37727
|
-
}
|
|
37728
|
-
function redactProperties(properties) {
|
|
37729
|
-
const out = {};
|
|
37730
|
-
for (const [name, value] of Object.entries(properties)) {
|
|
37731
|
-
const redacted = redactProperty(name, value);
|
|
37732
|
-
if (redacted !== undefined) {
|
|
37733
|
-
out[name] = redacted;
|
|
37734
|
-
}
|
|
37735
|
-
}
|
|
37736
|
-
return out;
|
|
37737
|
-
}
|
|
37738
|
-
|
|
37739
37843
|
// ../common/src/trackedAction.ts
|
|
37740
37844
|
var pollSignalSlot = singleton("PollSignal");
|
|
37741
37845
|
var cliErrorCodeValues = new Set(CLI_ERROR_CODES);
|
|
37742
37846
|
var retryHintValues = new Set(RETRY_HINTS);
|
|
37847
|
+
var TELEMETRY_COMMAND_ARG_PREFIX = "uip.cmd.arg.";
|
|
37743
37848
|
var processContext = {
|
|
37744
37849
|
exit: (code) => {
|
|
37745
37850
|
process.exitCode = code;
|
|
@@ -37750,22 +37855,18 @@ var processContext = {
|
|
|
37750
37855
|
};
|
|
37751
37856
|
function extractCommandParams(cmd) {
|
|
37752
37857
|
const params = {};
|
|
37858
|
+
const add2 = (name, value) => {
|
|
37859
|
+
if (name && value !== undefined) {
|
|
37860
|
+
params[`${TELEMETRY_COMMAND_ARG_PREFIX}${name}`] = value;
|
|
37861
|
+
}
|
|
37862
|
+
};
|
|
37753
37863
|
const registered = cmd.registeredArguments ?? [];
|
|
37754
37864
|
const processed = cmd.processedArgs ?? [];
|
|
37755
37865
|
for (let i = 0;i < registered.length; i++) {
|
|
37756
|
-
|
|
37757
|
-
if (value === undefined) {
|
|
37758
|
-
continue;
|
|
37759
|
-
}
|
|
37760
|
-
const name = registered[i].name();
|
|
37761
|
-
if (name) {
|
|
37762
|
-
params[name] = value;
|
|
37763
|
-
}
|
|
37866
|
+
add2(registered[i].name(), processed[i]);
|
|
37764
37867
|
}
|
|
37765
37868
|
for (const [key, value] of Object.entries(cmd.opts())) {
|
|
37766
|
-
|
|
37767
|
-
params[key] = value;
|
|
37768
|
-
}
|
|
37869
|
+
add2(key, value);
|
|
37769
37870
|
}
|
|
37770
37871
|
return params;
|
|
37771
37872
|
}
|
|
@@ -37808,11 +37909,12 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
37808
37909
|
return this.action(async (...args) => {
|
|
37809
37910
|
const telemetryName = deriveCommandPath(command);
|
|
37810
37911
|
const props = typeof properties === "function" ? properties(...args) : properties;
|
|
37912
|
+
const requestContext = telemetry.createRequestContext();
|
|
37811
37913
|
const startTime = performance.now();
|
|
37812
37914
|
let errorMessage;
|
|
37813
37915
|
let fallbackExitCode = EXIT_CODES.Success;
|
|
37814
37916
|
clearRecordedCommandFailureTelemetry();
|
|
37815
|
-
const [error] = await catchError(fn(...args));
|
|
37917
|
+
const [error] = await catchError(telemetry.runWithContext(requestContext, () => fn(...args)));
|
|
37816
37918
|
if (error) {
|
|
37817
37919
|
errorMessage = error instanceof Error ? error.message : String(error);
|
|
37818
37920
|
logger.debug(`[trackedAction] ${telemetryName} failed: ${errorMessage}`);
|
|
@@ -37848,16 +37950,21 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
37848
37950
|
recordedFailure,
|
|
37849
37951
|
pollSignal: context.pollSignal
|
|
37850
37952
|
});
|
|
37851
|
-
|
|
37852
|
-
|
|
37953
|
+
const commandParams = extractCommandParams(command);
|
|
37954
|
+
if (props) {
|
|
37955
|
+
for (const key of Object.keys(props)) {
|
|
37956
|
+
delete commandParams[`${TELEMETRY_COMMAND_ARG_PREFIX}${key}`];
|
|
37957
|
+
}
|
|
37958
|
+
}
|
|
37959
|
+
const baseProperties = redactProperties({
|
|
37960
|
+
...commandParams,
|
|
37853
37961
|
...props,
|
|
37854
37962
|
...buildCommandTelemetryAttribution(telemetryName, process.env.UIPATH_SKILL),
|
|
37855
37963
|
command: "true",
|
|
37856
|
-
duration: String(durationMs),
|
|
37857
|
-
success: String(success),
|
|
37858
37964
|
...terminalTelemetry,
|
|
37859
37965
|
...errorMessage ? { errorMessage } : {}
|
|
37860
|
-
})
|
|
37966
|
+
});
|
|
37967
|
+
telemetry.trackRequestResult(telemetryName, durationMs, success, baseProperties, requestContext);
|
|
37861
37968
|
});
|
|
37862
37969
|
};
|
|
37863
37970
|
|
|
@@ -64098,7 +64205,44 @@ var INTERNAL_ERROR_NAMES2 = new Set([
|
|
|
64098
64205
|
"RangeError"
|
|
64099
64206
|
]);
|
|
64100
64207
|
var telemetrySessionIdSlot2 = singleton3("TelemetrySessionId");
|
|
64208
|
+
var telemetryOperationIdSlot2 = singleton3("TelemetryOperationId");
|
|
64101
64209
|
var authSignalSlot2 = singleton3("TelemetryExecutionContextAuthSignal");
|
|
64210
|
+
var SENSITIVE_NAME_TOKENS2 = new Set([
|
|
64211
|
+
"token",
|
|
64212
|
+
"tokens",
|
|
64213
|
+
"secret",
|
|
64214
|
+
"secrets",
|
|
64215
|
+
"password",
|
|
64216
|
+
"passwords",
|
|
64217
|
+
"pwd",
|
|
64218
|
+
"credential",
|
|
64219
|
+
"credentials",
|
|
64220
|
+
"auth",
|
|
64221
|
+
"authentication",
|
|
64222
|
+
"authorization",
|
|
64223
|
+
"authority",
|
|
64224
|
+
"cert",
|
|
64225
|
+
"certificate",
|
|
64226
|
+
"certificates"
|
|
64227
|
+
]);
|
|
64228
|
+
var SENSITIVE_KEY_PREFIXES2 = new Set([
|
|
64229
|
+
"api",
|
|
64230
|
+
"access",
|
|
64231
|
+
"client",
|
|
64232
|
+
"private",
|
|
64233
|
+
"public",
|
|
64234
|
+
"signing",
|
|
64235
|
+
"encryption",
|
|
64236
|
+
"session",
|
|
64237
|
+
"master",
|
|
64238
|
+
"shared",
|
|
64239
|
+
"root",
|
|
64240
|
+
"ssh",
|
|
64241
|
+
"rsa",
|
|
64242
|
+
"aes",
|
|
64243
|
+
"hmac",
|
|
64244
|
+
"oauth"
|
|
64245
|
+
]);
|
|
64102
64246
|
var factorySlot2 = singleton3("PackagerFactoryProvider");
|
|
64103
64247
|
var RulesConfigFileType;
|
|
64104
64248
|
((RulesConfigFileType2) => {
|
|
@@ -64238,7 +64382,7 @@ var sdkUserAgentHostToken22 = singleton22("SdkUserAgentHostToken");
|
|
|
64238
64382
|
var package_default2 = {
|
|
64239
64383
|
name: "@uipath/project-packager",
|
|
64240
64384
|
license: "MIT",
|
|
64241
|
-
version: "1.199.0-preview.
|
|
64385
|
+
version: "1.199.0-preview.97",
|
|
64242
64386
|
description: "UiPath Project Packager - core library for packing individual UiPath projects",
|
|
64243
64387
|
type: "module",
|
|
64244
64388
|
main: "./dist/index.js",
|
|
@@ -74722,10 +74866,33 @@ class NodeContextStorage2 {
|
|
|
74722
74866
|
return this.storage.getStore();
|
|
74723
74867
|
}
|
|
74724
74868
|
}
|
|
74869
|
+
var TELEMETRY_TRACEPARENT_ENV2 = "TRACEPARENT";
|
|
74870
|
+
var TRACEPARENT_PATTERN2 = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/;
|
|
74871
|
+
function getProcessEnv3() {
|
|
74872
|
+
return globalThis.process?.env;
|
|
74873
|
+
}
|
|
74874
|
+
function parseInboundTraceparent2(value) {
|
|
74875
|
+
if (!value) {
|
|
74876
|
+
return;
|
|
74877
|
+
}
|
|
74878
|
+
const match = TRACEPARENT_PATTERN2.exec(value.trim().toLowerCase());
|
|
74879
|
+
if (!match) {
|
|
74880
|
+
return;
|
|
74881
|
+
}
|
|
74882
|
+
const [, traceId, parentSpanId] = match;
|
|
74883
|
+
if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId)) {
|
|
74884
|
+
return;
|
|
74885
|
+
}
|
|
74886
|
+
return { traceId, parentSpanId };
|
|
74887
|
+
}
|
|
74888
|
+
function getInboundTraceContext2() {
|
|
74889
|
+
return parseInboundTraceparent2(getProcessEnv3()?.[TELEMETRY_TRACEPARENT_ENV2]);
|
|
74890
|
+
}
|
|
74725
74891
|
var TELEMETRY_SESSION_ID_ENV2 = "UIPATH_SESSION_ID";
|
|
74726
74892
|
var TELEMETRY_SESSION_ID_PROPERTY2 = "session_id";
|
|
74727
74893
|
var telemetrySessionIdSlot3 = singleton4("TelemetrySessionId");
|
|
74728
|
-
|
|
74894
|
+
var telemetryOperationIdSlot3 = singleton4("TelemetryOperationId");
|
|
74895
|
+
function getProcessEnv22() {
|
|
74729
74896
|
return globalThis.process?.env;
|
|
74730
74897
|
}
|
|
74731
74898
|
function normalizeSessionId2(value) {
|
|
@@ -74736,15 +74903,159 @@ function normalizeSessionId2(value) {
|
|
|
74736
74903
|
return trimmed || undefined;
|
|
74737
74904
|
}
|
|
74738
74905
|
function getConfiguredTelemetrySessionId2() {
|
|
74739
|
-
return normalizeSessionId2(
|
|
74906
|
+
return normalizeSessionId2(getProcessEnv22()?.[TELEMETRY_SESSION_ID_ENV2]);
|
|
74740
74907
|
}
|
|
74741
74908
|
function resolveTelemetrySessionId2(existingSessionId) {
|
|
74742
74909
|
return getConfiguredTelemetrySessionId2() ?? normalizeSessionId2(existingSessionId);
|
|
74743
74910
|
}
|
|
74911
|
+
function getTelemetryOperationId2() {
|
|
74912
|
+
const existing = telemetryOperationIdSlot3.get();
|
|
74913
|
+
if (existing) {
|
|
74914
|
+
return existing;
|
|
74915
|
+
}
|
|
74916
|
+
const inboundTraceId = getInboundTraceContext2()?.traceId;
|
|
74917
|
+
const generated = inboundTraceId ?? crypto.randomUUID().replaceAll("-", "");
|
|
74918
|
+
telemetryOperationIdSlot3.set(generated);
|
|
74919
|
+
return generated;
|
|
74920
|
+
}
|
|
74744
74921
|
var telemetryPropsSlot3 = singleton4("TelemetryDefaultProps");
|
|
74745
74922
|
function getGlobalTelemetryProperties2() {
|
|
74746
74923
|
return telemetryPropsSlot3.get();
|
|
74747
74924
|
}
|
|
74925
|
+
var REDACTED2 = "[REDACTED]";
|
|
74926
|
+
var MAX_VALUE_LENGTH2 = 200;
|
|
74927
|
+
var SENSITIVE_NAME_TOKENS3 = new Set([
|
|
74928
|
+
"token",
|
|
74929
|
+
"tokens",
|
|
74930
|
+
"secret",
|
|
74931
|
+
"secrets",
|
|
74932
|
+
"password",
|
|
74933
|
+
"passwords",
|
|
74934
|
+
"pwd",
|
|
74935
|
+
"credential",
|
|
74936
|
+
"credentials",
|
|
74937
|
+
"auth",
|
|
74938
|
+
"authentication",
|
|
74939
|
+
"authorization",
|
|
74940
|
+
"authority",
|
|
74941
|
+
"cert",
|
|
74942
|
+
"certificate",
|
|
74943
|
+
"certificates"
|
|
74944
|
+
]);
|
|
74945
|
+
var SENSITIVE_KEY_PREFIXES3 = new Set([
|
|
74946
|
+
"api",
|
|
74947
|
+
"access",
|
|
74948
|
+
"client",
|
|
74949
|
+
"private",
|
|
74950
|
+
"public",
|
|
74951
|
+
"signing",
|
|
74952
|
+
"encryption",
|
|
74953
|
+
"session",
|
|
74954
|
+
"master",
|
|
74955
|
+
"shared",
|
|
74956
|
+
"root",
|
|
74957
|
+
"ssh",
|
|
74958
|
+
"rsa",
|
|
74959
|
+
"aes",
|
|
74960
|
+
"hmac",
|
|
74961
|
+
"oauth"
|
|
74962
|
+
]);
|
|
74963
|
+
var UUID_PATTERN2 = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
74964
|
+
var EMAIL_PATTERN2 = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
74965
|
+
var JWT_PATTERN2 = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
74966
|
+
var LONG_TOKEN_PATTERN2 = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
74967
|
+
var USER_HOME_PATTERN2 = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
74968
|
+
var URL_PATTERN2 = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
74969
|
+
var URL_TRAILING_PUNCT2 = /[.,;:!?)\]}>'"]+$/;
|
|
74970
|
+
function shortHash2(input) {
|
|
74971
|
+
let hash = 2166136261;
|
|
74972
|
+
for (let i3 = 0;i3 < input.length; i3++) {
|
|
74973
|
+
hash ^= input.charCodeAt(i3);
|
|
74974
|
+
hash = Math.imul(hash, 16777619);
|
|
74975
|
+
}
|
|
74976
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
74977
|
+
}
|
|
74978
|
+
function redactUrl2(raw) {
|
|
74979
|
+
try {
|
|
74980
|
+
const url = new URL(raw);
|
|
74981
|
+
return `${url.protocol}//${url.host}`;
|
|
74982
|
+
} catch {
|
|
74983
|
+
return `url#${shortHash2(raw)}`;
|
|
74984
|
+
}
|
|
74985
|
+
}
|
|
74986
|
+
function redactValueDetectors2(value) {
|
|
74987
|
+
let out = value;
|
|
74988
|
+
out = out.replace(JWT_PATTERN2, () => REDACTED2);
|
|
74989
|
+
out = out.replace(URL_PATTERN2, (match) => {
|
|
74990
|
+
const trailing = match.match(URL_TRAILING_PUNCT2)?.[0] ?? "";
|
|
74991
|
+
const core22 = trailing ? match.slice(0, -trailing.length) : match;
|
|
74992
|
+
return `${redactUrl2(core22)}${trailing}`;
|
|
74993
|
+
});
|
|
74994
|
+
out = out.replace(USER_HOME_PATTERN2, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
74995
|
+
out = out.replace(EMAIL_PATTERN2, (match) => `email#${shortHash2(match)}`);
|
|
74996
|
+
out = out.replace(UUID_PATTERN2, (match) => `uuid#${shortHash2(match)}`);
|
|
74997
|
+
out = out.replace(LONG_TOKEN_PATTERN2, () => REDACTED2);
|
|
74998
|
+
if (out.length > MAX_VALUE_LENGTH2) {
|
|
74999
|
+
out = `${out.slice(0, MAX_VALUE_LENGTH2)}…`;
|
|
75000
|
+
}
|
|
75001
|
+
return out;
|
|
75002
|
+
}
|
|
75003
|
+
function redactValue2(value) {
|
|
75004
|
+
return redactValueDetectors2(value);
|
|
75005
|
+
}
|
|
75006
|
+
function redactError2(error) {
|
|
75007
|
+
const safe = new Error(redactValueDetectors2(error.message ?? ""));
|
|
75008
|
+
safe.name = error.name;
|
|
75009
|
+
safe.stack = typeof error.stack === "string" ? redactValueDetectors2(error.stack) : undefined;
|
|
75010
|
+
return safe;
|
|
75011
|
+
}
|
|
75012
|
+
function nameTokens2(name) {
|
|
75013
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s._-]+/).map((t2) => t2.toLowerCase()).filter(Boolean);
|
|
75014
|
+
}
|
|
75015
|
+
function isSensitiveName2(name) {
|
|
75016
|
+
const tokens = nameTokens2(name);
|
|
75017
|
+
for (let i3 = 0;i3 < tokens.length; i3++) {
|
|
75018
|
+
const token = tokens[i3];
|
|
75019
|
+
if (SENSITIVE_NAME_TOKENS3.has(token)) {
|
|
75020
|
+
return true;
|
|
75021
|
+
}
|
|
75022
|
+
if (token === "key" || token === "keys") {
|
|
75023
|
+
const prev = tokens[i3 - 1];
|
|
75024
|
+
if (prev && SENSITIVE_KEY_PREFIXES3.has(prev)) {
|
|
75025
|
+
return true;
|
|
75026
|
+
}
|
|
75027
|
+
}
|
|
75028
|
+
}
|
|
75029
|
+
return false;
|
|
75030
|
+
}
|
|
75031
|
+
function redactProperty2(name, value) {
|
|
75032
|
+
if (value === undefined || value === null) {
|
|
75033
|
+
return;
|
|
75034
|
+
}
|
|
75035
|
+
if (isSensitiveName2(name)) {
|
|
75036
|
+
return REDACTED2;
|
|
75037
|
+
}
|
|
75038
|
+
if (typeof value === "boolean" || typeof value === "number") {
|
|
75039
|
+
return value;
|
|
75040
|
+
}
|
|
75041
|
+
if (typeof value !== "string") {
|
|
75042
|
+
return "[OBJECT]";
|
|
75043
|
+
}
|
|
75044
|
+
return redactValueDetectors2(value);
|
|
75045
|
+
}
|
|
75046
|
+
function redactProperties2(properties) {
|
|
75047
|
+
const out = {};
|
|
75048
|
+
for (const [name, value] of Object.entries(properties)) {
|
|
75049
|
+
const redacted = redactProperty2(name, value);
|
|
75050
|
+
if (redacted !== undefined) {
|
|
75051
|
+
out[name] = redacted;
|
|
75052
|
+
}
|
|
75053
|
+
}
|
|
75054
|
+
return out;
|
|
75055
|
+
}
|
|
75056
|
+
var TELEMETRY_OPERATION_ID_PROPERTY2 = "uip.trace.operation_id";
|
|
75057
|
+
var TELEMETRY_PARENT_ID_PROPERTY2 = "uip.trace.parent_id";
|
|
75058
|
+
var TELEMETRY_SPAN_ID_PROPERTY2 = "uip.trace.span_id";
|
|
74748
75059
|
|
|
74749
75060
|
class TelemetryService2 {
|
|
74750
75061
|
telemetryProvider;
|
|
@@ -74772,11 +75083,15 @@ class TelemetryService2 {
|
|
|
74772
75083
|
trackException(error, properties) {
|
|
74773
75084
|
const context = this.getCurrentContext();
|
|
74774
75085
|
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
74775
|
-
this.telemetryProvider.trackException(error, enrichedProperties);
|
|
75086
|
+
this.telemetryProvider.trackException(redactError2(error), enrichedProperties);
|
|
74776
75087
|
}
|
|
74777
75088
|
async trackRequest(name, fn, properties) {
|
|
75089
|
+
const parentContext = this.getCurrentContext();
|
|
75090
|
+
const operationId = parentContext?.operationId ?? this.operationId ?? getTelemetryOperationId2();
|
|
75091
|
+
const parentId = parentContext ? parentContext.id : this.inboundParentIdFor(operationId);
|
|
74778
75092
|
const context = {
|
|
74779
|
-
operationId
|
|
75093
|
+
operationId,
|
|
75094
|
+
...parentId !== undefined ? { parentId } : {},
|
|
74780
75095
|
id: this.generateId()
|
|
74781
75096
|
};
|
|
74782
75097
|
const startTime = performance.now();
|
|
@@ -74794,6 +75109,45 @@ class TelemetryService2 {
|
|
|
74794
75109
|
throw error;
|
|
74795
75110
|
}
|
|
74796
75111
|
}
|
|
75112
|
+
trackRequestResult(name, durationMs, success, properties, context) {
|
|
75113
|
+
const requestContext = context ?? {
|
|
75114
|
+
operationId: this.operationId ?? getTelemetryOperationId2(),
|
|
75115
|
+
id: this.generateId()
|
|
75116
|
+
};
|
|
75117
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, requestContext);
|
|
75118
|
+
this.telemetryProvider.trackRequest(name, durationMs, success, enrichedProperties);
|
|
75119
|
+
}
|
|
75120
|
+
createRequestContext() {
|
|
75121
|
+
const operationId = this.operationId ?? getTelemetryOperationId2();
|
|
75122
|
+
const parentId = this.inboundParentIdFor(operationId);
|
|
75123
|
+
return {
|
|
75124
|
+
operationId,
|
|
75125
|
+
...parentId !== undefined ? { parentId } : {},
|
|
75126
|
+
id: this.generateId()
|
|
75127
|
+
};
|
|
75128
|
+
}
|
|
75129
|
+
inboundParentIdFor(operationId) {
|
|
75130
|
+
const inbound = getInboundTraceContext2();
|
|
75131
|
+
return inbound && inbound.traceId === operationId ? inbound.parentSpanId : undefined;
|
|
75132
|
+
}
|
|
75133
|
+
runWithContext(context, fn) {
|
|
75134
|
+
return this.contextStorage.run(context, fn);
|
|
75135
|
+
}
|
|
75136
|
+
createDependencyContext() {
|
|
75137
|
+
const parentContext = this.getCurrentContext();
|
|
75138
|
+
if (!parentContext) {
|
|
75139
|
+
return;
|
|
75140
|
+
}
|
|
75141
|
+
return {
|
|
75142
|
+
operationId: parentContext.operationId,
|
|
75143
|
+
parentId: parentContext.id,
|
|
75144
|
+
id: this.generateId()
|
|
75145
|
+
};
|
|
75146
|
+
}
|
|
75147
|
+
trackDependencyResult(name, type22, durationMs, success, properties, context, resultCode) {
|
|
75148
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
75149
|
+
this.telemetryProvider.trackDependency(redactValue2(name), type22, durationMs, success, enrichedProperties, resultCode);
|
|
75150
|
+
}
|
|
74797
75151
|
async trackDependencyOperation(name, type22, fn, properties) {
|
|
74798
75152
|
const parentContext = this.getCurrentContext();
|
|
74799
75153
|
if (!parentContext) {
|
|
@@ -74830,8 +75184,12 @@ class TelemetryService2 {
|
|
|
74830
75184
|
...getExecutionContextTelemetryProperties2(),
|
|
74831
75185
|
...globalProperties,
|
|
74832
75186
|
...this.defaultProperties,
|
|
74833
|
-
...properties,
|
|
74834
|
-
...context
|
|
75187
|
+
...redactProperties2(properties ?? {}),
|
|
75188
|
+
...context ? {
|
|
75189
|
+
[TELEMETRY_OPERATION_ID_PROPERTY2]: context.operationId,
|
|
75190
|
+
...context.parentId !== undefined ? { [TELEMETRY_PARENT_ID_PROPERTY2]: context.parentId } : {},
|
|
75191
|
+
[TELEMETRY_SPAN_ID_PROPERTY2]: context.id
|
|
75192
|
+
} : {}
|
|
74835
75193
|
};
|
|
74836
75194
|
if (sessionId === undefined) {
|
|
74837
75195
|
delete enriched[TELEMETRY_SESSION_ID_PROPERTY2];
|
|
@@ -74841,7 +75199,16 @@ class TelemetryService2 {
|
|
|
74841
75199
|
return enriched;
|
|
74842
75200
|
}
|
|
74843
75201
|
generateId() {
|
|
74844
|
-
|
|
75202
|
+
const bytes = new Uint8Array(8);
|
|
75203
|
+
let hex = "";
|
|
75204
|
+
do {
|
|
75205
|
+
crypto.getRandomValues(bytes);
|
|
75206
|
+
hex = "";
|
|
75207
|
+
for (const byte of bytes) {
|
|
75208
|
+
hex += byte.toString(16).padStart(2, "0");
|
|
75209
|
+
}
|
|
75210
|
+
} while (/^0+$/.test(hex));
|
|
75211
|
+
return hex;
|
|
74845
75212
|
}
|
|
74846
75213
|
}
|
|
74847
75214
|
var providerSlot2 = singleton4("TelemetryProvider");
|
|
@@ -75538,149 +75905,24 @@ function buildCommandTelemetryAttribution2(commandPath, skillSource) {
|
|
|
75538
75905
|
...getCommandProductModeAttribution2(commandPath)
|
|
75539
75906
|
};
|
|
75540
75907
|
}
|
|
75541
|
-
var REDACTED2 = "[REDACTED]";
|
|
75542
|
-
var MAX_VALUE_LENGTH2 = 200;
|
|
75543
|
-
var SENSITIVE_NAME_TOKENS2 = new Set([
|
|
75544
|
-
"token",
|
|
75545
|
-
"tokens",
|
|
75546
|
-
"secret",
|
|
75547
|
-
"secrets",
|
|
75548
|
-
"password",
|
|
75549
|
-
"passwords",
|
|
75550
|
-
"pwd",
|
|
75551
|
-
"credential",
|
|
75552
|
-
"credentials",
|
|
75553
|
-
"auth",
|
|
75554
|
-
"authentication",
|
|
75555
|
-
"authorization",
|
|
75556
|
-
"authority",
|
|
75557
|
-
"cert",
|
|
75558
|
-
"certificate",
|
|
75559
|
-
"certificates"
|
|
75560
|
-
]);
|
|
75561
|
-
var SENSITIVE_KEY_PREFIXES2 = new Set([
|
|
75562
|
-
"api",
|
|
75563
|
-
"access",
|
|
75564
|
-
"client",
|
|
75565
|
-
"private",
|
|
75566
|
-
"public",
|
|
75567
|
-
"signing",
|
|
75568
|
-
"encryption",
|
|
75569
|
-
"session",
|
|
75570
|
-
"master",
|
|
75571
|
-
"shared",
|
|
75572
|
-
"root",
|
|
75573
|
-
"ssh",
|
|
75574
|
-
"rsa",
|
|
75575
|
-
"aes",
|
|
75576
|
-
"hmac",
|
|
75577
|
-
"oauth"
|
|
75578
|
-
]);
|
|
75579
|
-
var UUID_PATTERN2 = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
75580
|
-
var EMAIL_PATTERN2 = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
75581
|
-
var JWT_PATTERN2 = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
75582
|
-
var LONG_TOKEN_PATTERN2 = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
75583
|
-
var USER_HOME_PATTERN2 = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
75584
|
-
var URL_PATTERN2 = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
75585
|
-
var URL_TRAILING_PUNCT2 = /[.,;:!?)\]}>'"]+$/;
|
|
75586
|
-
function shortHash2(input) {
|
|
75587
|
-
let hash = 2166136261;
|
|
75588
|
-
for (let i3 = 0;i3 < input.length; i3++) {
|
|
75589
|
-
hash ^= input.charCodeAt(i3);
|
|
75590
|
-
hash = Math.imul(hash, 16777619);
|
|
75591
|
-
}
|
|
75592
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
75593
|
-
}
|
|
75594
|
-
function redactUrl2(raw) {
|
|
75595
|
-
try {
|
|
75596
|
-
const url = new URL(raw);
|
|
75597
|
-
return `${url.protocol}//${url.host}`;
|
|
75598
|
-
} catch {
|
|
75599
|
-
return `url#${shortHash2(raw)}`;
|
|
75600
|
-
}
|
|
75601
|
-
}
|
|
75602
|
-
function redactValueDetectors2(value) {
|
|
75603
|
-
let out = value;
|
|
75604
|
-
out = out.replace(JWT_PATTERN2, () => REDACTED2);
|
|
75605
|
-
out = out.replace(URL_PATTERN2, (match) => {
|
|
75606
|
-
const trailing = match.match(URL_TRAILING_PUNCT2)?.[0] ?? "";
|
|
75607
|
-
const core22 = trailing ? match.slice(0, -trailing.length) : match;
|
|
75608
|
-
return `${redactUrl2(core22)}${trailing}`;
|
|
75609
|
-
});
|
|
75610
|
-
out = out.replace(USER_HOME_PATTERN2, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
75611
|
-
out = out.replace(EMAIL_PATTERN2, (match) => `email#${shortHash2(match)}`);
|
|
75612
|
-
out = out.replace(UUID_PATTERN2, (match) => `uuid#${shortHash2(match)}`);
|
|
75613
|
-
out = out.replace(LONG_TOKEN_PATTERN2, () => REDACTED2);
|
|
75614
|
-
if (out.length > MAX_VALUE_LENGTH2) {
|
|
75615
|
-
out = `${out.slice(0, MAX_VALUE_LENGTH2)}…`;
|
|
75616
|
-
}
|
|
75617
|
-
return out;
|
|
75618
|
-
}
|
|
75619
|
-
function nameTokens2(name) {
|
|
75620
|
-
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s_-]+/).map((t2) => t2.toLowerCase()).filter(Boolean);
|
|
75621
|
-
}
|
|
75622
|
-
function isSensitiveName2(name) {
|
|
75623
|
-
const tokens = nameTokens2(name);
|
|
75624
|
-
for (let i3 = 0;i3 < tokens.length; i3++) {
|
|
75625
|
-
const token = tokens[i3];
|
|
75626
|
-
if (SENSITIVE_NAME_TOKENS2.has(token)) {
|
|
75627
|
-
return true;
|
|
75628
|
-
}
|
|
75629
|
-
if (token === "key" || token === "keys") {
|
|
75630
|
-
const prev = tokens[i3 - 1];
|
|
75631
|
-
if (prev && SENSITIVE_KEY_PREFIXES2.has(prev)) {
|
|
75632
|
-
return true;
|
|
75633
|
-
}
|
|
75634
|
-
}
|
|
75635
|
-
}
|
|
75636
|
-
return false;
|
|
75637
|
-
}
|
|
75638
|
-
function redactProperty2(name, value) {
|
|
75639
|
-
if (value === undefined || value === null) {
|
|
75640
|
-
return;
|
|
75641
|
-
}
|
|
75642
|
-
if (isSensitiveName2(name)) {
|
|
75643
|
-
return REDACTED2;
|
|
75644
|
-
}
|
|
75645
|
-
if (typeof value === "boolean" || typeof value === "number") {
|
|
75646
|
-
return value;
|
|
75647
|
-
}
|
|
75648
|
-
if (typeof value !== "string") {
|
|
75649
|
-
return "[OBJECT]";
|
|
75650
|
-
}
|
|
75651
|
-
return redactValueDetectors2(value);
|
|
75652
|
-
}
|
|
75653
|
-
function redactProperties2(properties) {
|
|
75654
|
-
const out = {};
|
|
75655
|
-
for (const [name, value] of Object.entries(properties)) {
|
|
75656
|
-
const redacted = redactProperty2(name, value);
|
|
75657
|
-
if (redacted !== undefined) {
|
|
75658
|
-
out[name] = redacted;
|
|
75659
|
-
}
|
|
75660
|
-
}
|
|
75661
|
-
return out;
|
|
75662
|
-
}
|
|
75663
75908
|
var pollSignalSlot2 = singleton4("PollSignal");
|
|
75664
75909
|
var cliErrorCodeValues2 = new Set(CLI_ERROR_CODES2);
|
|
75665
75910
|
var retryHintValues2 = new Set(RETRY_HINTS2);
|
|
75911
|
+
var TELEMETRY_COMMAND_ARG_PREFIX2 = "uip.cmd.arg.";
|
|
75666
75912
|
function extractCommandParams2(cmd) {
|
|
75667
75913
|
const params = {};
|
|
75914
|
+
const add22 = (name, value) => {
|
|
75915
|
+
if (name && value !== undefined) {
|
|
75916
|
+
params[`${TELEMETRY_COMMAND_ARG_PREFIX2}${name}`] = value;
|
|
75917
|
+
}
|
|
75918
|
+
};
|
|
75668
75919
|
const registered = cmd.registeredArguments ?? [];
|
|
75669
75920
|
const processed = cmd.processedArgs ?? [];
|
|
75670
75921
|
for (let i3 = 0;i3 < registered.length; i3++) {
|
|
75671
|
-
|
|
75672
|
-
if (value === undefined) {
|
|
75673
|
-
continue;
|
|
75674
|
-
}
|
|
75675
|
-
const name = registered[i3].name();
|
|
75676
|
-
if (name) {
|
|
75677
|
-
params[name] = value;
|
|
75678
|
-
}
|
|
75922
|
+
add22(registered[i3].name(), processed[i3]);
|
|
75679
75923
|
}
|
|
75680
75924
|
for (const [key, value] of Object.entries(cmd.opts())) {
|
|
75681
|
-
|
|
75682
|
-
params[key] = value;
|
|
75683
|
-
}
|
|
75925
|
+
add22(key, value);
|
|
75684
75926
|
}
|
|
75685
75927
|
return params;
|
|
75686
75928
|
}
|
|
@@ -75723,11 +75965,12 @@ Command3.prototype.trackedAction = function(context, fn, properties) {
|
|
|
75723
75965
|
return this.action(async (...args) => {
|
|
75724
75966
|
const telemetryName = deriveCommandPath2(command);
|
|
75725
75967
|
const props = typeof properties === "function" ? properties(...args) : properties;
|
|
75968
|
+
const requestContext = telemetry2.createRequestContext();
|
|
75726
75969
|
const startTime = performance.now();
|
|
75727
75970
|
let errorMessage2;
|
|
75728
75971
|
let fallbackExitCode = EXIT_CODES2.Success;
|
|
75729
75972
|
clearRecordedCommandFailureTelemetry2();
|
|
75730
|
-
const [error] = await catchError3(fn(...args));
|
|
75973
|
+
const [error] = await catchError3(telemetry2.runWithContext(requestContext, () => fn(...args)));
|
|
75731
75974
|
if (error) {
|
|
75732
75975
|
errorMessage2 = error instanceof Error ? error.message : String(error);
|
|
75733
75976
|
logger4.debug(`[trackedAction] ${telemetryName} failed: ${errorMessage2}`);
|
|
@@ -75763,16 +76006,21 @@ Command3.prototype.trackedAction = function(context, fn, properties) {
|
|
|
75763
76006
|
recordedFailure,
|
|
75764
76007
|
pollSignal: context.pollSignal
|
|
75765
76008
|
});
|
|
75766
|
-
|
|
75767
|
-
|
|
76009
|
+
const commandParams = extractCommandParams2(command);
|
|
76010
|
+
if (props) {
|
|
76011
|
+
for (const key of Object.keys(props)) {
|
|
76012
|
+
delete commandParams[`${TELEMETRY_COMMAND_ARG_PREFIX2}${key}`];
|
|
76013
|
+
}
|
|
76014
|
+
}
|
|
76015
|
+
const baseProperties = redactProperties2({
|
|
76016
|
+
...commandParams,
|
|
75768
76017
|
...props,
|
|
75769
76018
|
...buildCommandTelemetryAttribution2(telemetryName, process.env.UIPATH_SKILL),
|
|
75770
76019
|
command: "true",
|
|
75771
|
-
duration: String(durationMs),
|
|
75772
|
-
success: String(success),
|
|
75773
76020
|
...terminalTelemetry,
|
|
75774
76021
|
...errorMessage2 ? { errorMessage: errorMessage2 } : {}
|
|
75775
|
-
})
|
|
76022
|
+
});
|
|
76023
|
+
telemetry2.trackRequestResult(telemetryName, durationMs, success, baseProperties, requestContext);
|
|
75776
76024
|
});
|
|
75777
76025
|
};
|
|
75778
76026
|
var guardInstalledSlot3 = singleton4("ConsoleGuardInstalled");
|
|
@@ -76249,7 +76497,7 @@ var sdkUserAgentHostToken23 = singleton23("SdkUserAgentHostToken");
|
|
|
76249
76497
|
var package_default3 = {
|
|
76250
76498
|
name: "@uipath/project-packager",
|
|
76251
76499
|
license: "MIT",
|
|
76252
|
-
version: "1.199.0-preview.
|
|
76500
|
+
version: "1.199.0-preview.97",
|
|
76253
76501
|
description: "UiPath Project Packager - core library for packing individual UiPath projects",
|
|
76254
76502
|
type: "module",
|
|
76255
76503
|
main: "./dist/index.js",
|
|
@@ -81803,7 +82051,7 @@ class TextApiResponse2 {
|
|
|
81803
82051
|
var package_default5 = {
|
|
81804
82052
|
name: "@uipath/solution-sdk",
|
|
81805
82053
|
license: "MIT",
|
|
81806
|
-
version: "1.199.0-preview.
|
|
82054
|
+
version: "1.199.0-preview.97",
|
|
81807
82055
|
repository: {
|
|
81808
82056
|
type: "git",
|
|
81809
82057
|
url: "https://github.com/UiPath/cli.git",
|
|
@@ -108468,4 +108716,4 @@ export {
|
|
|
108468
108716
|
metadata
|
|
108469
108717
|
};
|
|
108470
108718
|
|
|
108471
|
-
//# debugId=
|
|
108719
|
+
//# debugId=7768D74B33069B2264756E2164756E21
|