@uipath/solution-tool 1.199.0-preview.92 → 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/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.92",
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
- function getProcessEnv() {
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(getProcessEnv()?.[TELEMETRY_SESSION_ID_ENV]);
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: this.operationId ?? this.generateId(),
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
- return crypto.randomUUID().replaceAll("-", "");
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
- const value = processed[i];
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
- if (value !== undefined) {
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
- telemetry.trackEvent(telemetryName, redactProperties({
37852
- ...extractCommandParams(command),
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.92",
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
- function getProcessEnv2() {
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(getProcessEnv2()?.[TELEMETRY_SESSION_ID_ENV2]);
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: this.operationId ?? this.generateId(),
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
- return crypto.randomUUID().replaceAll("-", "");
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
- const value = processed[i3];
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
- if (value !== undefined) {
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
- telemetry2.trackEvent(telemetryName, redactProperties2({
75767
- ...extractCommandParams2(command),
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.92",
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.92",
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=BA080F85D99B581064756E2164756E21
108719
+ //# debugId=7768D74B33069B2264756E2164756E21