@uipath/integrationservice-sdk 1.203.0-preview.212 → 1.204.0-preview.211
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 +583 -53
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -64692,8 +64692,156 @@ function getGlobalTelemetryProperties() {
|
|
|
64692
64692
|
return telemetryPropsSlot.get();
|
|
64693
64693
|
}
|
|
64694
64694
|
|
|
64695
|
+
// ../common/src/telemetry/telemetry-dimensions.ts
|
|
64696
|
+
var BaseDimensions = {
|
|
64697
|
+
ApplicationName: "ApplicationName",
|
|
64698
|
+
ProductVersion: "ProductVersion",
|
|
64699
|
+
InstallationId: "InstallationId",
|
|
64700
|
+
CloudUserId: "CloudUserId",
|
|
64701
|
+
CloudTenantId: "CloudTenantId",
|
|
64702
|
+
CloudOrganizationId: "CloudOrganizationId",
|
|
64703
|
+
IsInternalUser: "IsInternalUser",
|
|
64704
|
+
Environment: "Environment",
|
|
64705
|
+
BaseUrl: "BaseUrl",
|
|
64706
|
+
Region: "Region",
|
|
64707
|
+
Agent: "Agent",
|
|
64708
|
+
AgentVersion: "AgentVersion",
|
|
64709
|
+
AgentModel: "AgentModel",
|
|
64710
|
+
ToolName: "ToolName",
|
|
64711
|
+
ToolVersion: "ToolVersion",
|
|
64712
|
+
ExecutionContext: "ExecutionContext",
|
|
64713
|
+
CiProvider: "CiProvider",
|
|
64714
|
+
SessionIdSource: "SessionIdSource",
|
|
64715
|
+
SessionId: "SessionId"
|
|
64716
|
+
};
|
|
64717
|
+
var CommandDimensions = {
|
|
64718
|
+
IsCommand: "IsCommand",
|
|
64719
|
+
IsReexec: "IsReexec",
|
|
64720
|
+
CommandName: "CommandName",
|
|
64721
|
+
ExitCode: "ExitCode",
|
|
64722
|
+
TerminalOutcome: "TerminalOutcome",
|
|
64723
|
+
ErrorClass: "ErrorClass",
|
|
64724
|
+
TerminalSignal: "TerminalSignal",
|
|
64725
|
+
ErrorMessage: "ErrorMessage",
|
|
64726
|
+
SkillName: "SkillName",
|
|
64727
|
+
ProductArea: "ProductArea",
|
|
64728
|
+
Mode: "Mode"
|
|
64729
|
+
};
|
|
64730
|
+
var ShipDimensions = {
|
|
64731
|
+
ShipKind: "ShipKind",
|
|
64732
|
+
Target: "Target",
|
|
64733
|
+
ProjectType: "ProjectType",
|
|
64734
|
+
ProjectTypes: "ProjectTypes",
|
|
64735
|
+
ArtifactCorrelationKey: "ArtifactCorrelationKey",
|
|
64736
|
+
PackageName: "PackageName",
|
|
64737
|
+
PackageVersion: "PackageVersion",
|
|
64738
|
+
PackageVersionKey: "PackageVersionKey",
|
|
64739
|
+
DeploymentKey: "DeploymentKey",
|
|
64740
|
+
SolutionId: "SolutionId",
|
|
64741
|
+
FolderKey: "FolderKey",
|
|
64742
|
+
FeedId: "FeedId"
|
|
64743
|
+
};
|
|
64744
|
+
var ErrorDimensions = {
|
|
64745
|
+
Result: "Result",
|
|
64746
|
+
ErrorCode: "ErrorCode",
|
|
64747
|
+
Retry: "Retry",
|
|
64748
|
+
ErrorMessage: "ErrorMessage"
|
|
64749
|
+
};
|
|
64750
|
+
var AuthDimensions = {
|
|
64751
|
+
AuthenticationMethod: "AuthenticationMethod",
|
|
64752
|
+
Success: "Success",
|
|
64753
|
+
Reason: "Reason"
|
|
64754
|
+
};
|
|
64755
|
+
var SkillsDimensions = {
|
|
64756
|
+
SchemaVersion: "SchemaVersion",
|
|
64757
|
+
AgentType: "AgentType",
|
|
64758
|
+
SkillsVersion: "SkillsVersion",
|
|
64759
|
+
UipSubcommand: "UipSubcommand",
|
|
64760
|
+
FileExtension: "FileExtension",
|
|
64761
|
+
SubagentModel: "SubagentModel",
|
|
64762
|
+
SubagentType: "SubagentType",
|
|
64763
|
+
PermissionMode: "PermissionMode",
|
|
64764
|
+
EffortLevel: "EffortLevel",
|
|
64765
|
+
SessionSource: "SessionSource",
|
|
64766
|
+
Outcome: "Outcome",
|
|
64767
|
+
DurationMs: "DurationMs",
|
|
64768
|
+
Source: "Source"
|
|
64769
|
+
};
|
|
64770
|
+
var PackagerDimensions = {
|
|
64771
|
+
ProjectId: "ProjectId",
|
|
64772
|
+
ProjectType: "ProjectType",
|
|
64773
|
+
SolutionId: "SolutionId"
|
|
64774
|
+
};
|
|
64775
|
+
var ScopeDimensions = {
|
|
64776
|
+
FolderId: "FolderId"
|
|
64777
|
+
};
|
|
64778
|
+
var ID_DIMENSIONS = new Set([
|
|
64779
|
+
BaseDimensions.CloudUserId,
|
|
64780
|
+
BaseDimensions.CloudTenantId,
|
|
64781
|
+
BaseDimensions.CloudOrganizationId,
|
|
64782
|
+
BaseDimensions.InstallationId,
|
|
64783
|
+
ShipDimensions.ArtifactCorrelationKey,
|
|
64784
|
+
ShipDimensions.PackageVersionKey,
|
|
64785
|
+
ShipDimensions.DeploymentKey,
|
|
64786
|
+
ShipDimensions.SolutionId,
|
|
64787
|
+
ShipDimensions.FolderKey,
|
|
64788
|
+
ShipDimensions.FeedId,
|
|
64789
|
+
PackagerDimensions.ProjectId
|
|
64790
|
+
]);
|
|
64791
|
+
var NON_IDENTIFIER_PLACEHOLDER_PATTERN = /^(?:\[[A-Z_]+\]|<[^>]+>)$/;
|
|
64792
|
+
var RESERVED_DIMENSION_NAMES = new Set([
|
|
64793
|
+
...Object.values(BaseDimensions),
|
|
64794
|
+
...Object.values(CommandDimensions),
|
|
64795
|
+
...Object.values(ShipDimensions),
|
|
64796
|
+
...Object.values(ErrorDimensions),
|
|
64797
|
+
...Object.values(AuthDimensions),
|
|
64798
|
+
...Object.values(SkillsDimensions),
|
|
64799
|
+
...Object.values(PackagerDimensions),
|
|
64800
|
+
...Object.values(ScopeDimensions)
|
|
64801
|
+
]);
|
|
64802
|
+
var CURATED_DIMENSIONS = new Set([
|
|
64803
|
+
BaseDimensions.ApplicationName,
|
|
64804
|
+
BaseDimensions.ProductVersion,
|
|
64805
|
+
BaseDimensions.InstallationId,
|
|
64806
|
+
BaseDimensions.CloudUserId,
|
|
64807
|
+
BaseDimensions.CloudTenantId,
|
|
64808
|
+
BaseDimensions.CloudOrganizationId,
|
|
64809
|
+
BaseDimensions.IsInternalUser,
|
|
64810
|
+
BaseDimensions.Environment,
|
|
64811
|
+
BaseDimensions.BaseUrl,
|
|
64812
|
+
BaseDimensions.Region,
|
|
64813
|
+
BaseDimensions.Agent,
|
|
64814
|
+
BaseDimensions.AgentVersion,
|
|
64815
|
+
BaseDimensions.ToolVersion,
|
|
64816
|
+
BaseDimensions.ExecutionContext,
|
|
64817
|
+
BaseDimensions.CiProvider,
|
|
64818
|
+
BaseDimensions.SessionIdSource,
|
|
64819
|
+
BaseDimensions.SessionId,
|
|
64820
|
+
...Object.values(CommandDimensions),
|
|
64821
|
+
...Object.values(ShipDimensions)
|
|
64822
|
+
]);
|
|
64823
|
+
function lowercaseIdDimensionValues(properties) {
|
|
64824
|
+
let changed = false;
|
|
64825
|
+
const result = {
|
|
64826
|
+
...properties
|
|
64827
|
+
};
|
|
64828
|
+
for (const key of Object.keys(result)) {
|
|
64829
|
+
const value = result[key];
|
|
64830
|
+
if (!ID_DIMENSIONS.has(key) || typeof value !== "string" || NON_IDENTIFIER_PLACEHOLDER_PATTERN.test(value)) {
|
|
64831
|
+
continue;
|
|
64832
|
+
}
|
|
64833
|
+
const lowered = value.toLowerCase();
|
|
64834
|
+
if (lowered !== value) {
|
|
64835
|
+
result[key] = lowered;
|
|
64836
|
+
changed = true;
|
|
64837
|
+
}
|
|
64838
|
+
}
|
|
64839
|
+
return changed ? result : properties;
|
|
64840
|
+
}
|
|
64841
|
+
|
|
64695
64842
|
// ../common/src/sdk-user-agent.ts
|
|
64696
64843
|
var USER_AGENT_HEADER = "User-Agent";
|
|
64844
|
+
var AGENT_PROPERTY = BaseDimensions.Agent;
|
|
64697
64845
|
var sdkUserAgentHostToken = singleton("SdkUserAgentHostToken");
|
|
64698
64846
|
function userAgentPatchKey(userAgent) {
|
|
64699
64847
|
return Symbol.for(`@uipath/common/sdk-user-agent/${userAgent}`);
|
|
@@ -65337,7 +65485,7 @@ var package_default = {
|
|
|
65337
65485
|
name: "@uipath/integrationservice-sdk",
|
|
65338
65486
|
author: "UiPath",
|
|
65339
65487
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
65340
|
-
version: "1.
|
|
65488
|
+
version: "1.204.0-preview.211",
|
|
65341
65489
|
repository: {
|
|
65342
65490
|
type: "git",
|
|
65343
65491
|
url: "https://github.com/UiPath/cli.git",
|
|
@@ -84594,6 +84742,11 @@ var pickName = (claims) => {
|
|
|
84594
84742
|
const username = asString(claims?.preferred_username);
|
|
84595
84743
|
return asString(claims?.name) ?? (looksLikeEmail(username) ? undefined : username);
|
|
84596
84744
|
};
|
|
84745
|
+
var pickScopes = (claims) => {
|
|
84746
|
+
const raw = claims?.scope;
|
|
84747
|
+
const scopes = Array.isArray(raw) ? raw.filter((entry) => asString(entry) !== undefined) : typeof raw === "string" ? raw.split(/\s+/).filter(Boolean) : [];
|
|
84748
|
+
return scopes.length > 0 ? scopes : undefined;
|
|
84749
|
+
};
|
|
84597
84750
|
var resolveSessionIdentity = (accessToken, authFlow) => {
|
|
84598
84751
|
const claims = accessToken ? decodeClaims(accessToken) : undefined;
|
|
84599
84752
|
const email = pickEmail(claims);
|
|
@@ -84619,6 +84772,7 @@ var resolveSessionIdentity = (accessToken, authFlow) => {
|
|
|
84619
84772
|
identity.clientId = clientId;
|
|
84620
84773
|
return identity;
|
|
84621
84774
|
};
|
|
84775
|
+
var readTokenScopes = (accessToken) => accessToken ? pickScopes(decodeClaims(accessToken)) : undefined;
|
|
84622
84776
|
|
|
84623
84777
|
// ../auth/src/envAuth.ts
|
|
84624
84778
|
var ENV_AUTH_ENABLE_VAR = "UIPATH_CLI_ENABLE_ENV_AUTH";
|
|
@@ -84691,6 +84845,7 @@ var readAuthFromEnv = () => {
|
|
|
84691
84845
|
const expiration = getTokenExpiration(accessToken);
|
|
84692
84846
|
const loginStatus = expiration && expiration <= new Date ? "Expired" : "Logged in";
|
|
84693
84847
|
const identity = resolveSessionIdentity(accessToken);
|
|
84848
|
+
const scopes = readTokenScopes(accessToken);
|
|
84694
84849
|
return {
|
|
84695
84850
|
loginStatus,
|
|
84696
84851
|
accessToken,
|
|
@@ -84701,7 +84856,8 @@ var readAuthFromEnv = () => {
|
|
|
84701
84856
|
tenantId,
|
|
84702
84857
|
expiration,
|
|
84703
84858
|
source: "env-vars" /* EnvironmentVariables */,
|
|
84704
|
-
...identity ? { identity } : {}
|
|
84859
|
+
...identity ? { identity } : {},
|
|
84860
|
+
...scopes ? { scopes } : {}
|
|
84705
84861
|
};
|
|
84706
84862
|
};
|
|
84707
84863
|
|
|
@@ -85343,10 +85499,15 @@ async function buildFileStatus(tokens, credentials, globalHint) {
|
|
|
85343
85499
|
}
|
|
85344
85500
|
function identityFields(accessToken, credentials) {
|
|
85345
85501
|
const identity = resolveSessionIdentity(accessToken, parseAuthFlow(credentials[AUTH_FLOW_ENV_VAR]));
|
|
85346
|
-
|
|
85502
|
+
const scopes = readTokenScopes(accessToken);
|
|
85503
|
+
return {
|
|
85504
|
+
...identity ? { identity } : {},
|
|
85505
|
+
...scopes ? { scopes } : {}
|
|
85506
|
+
};
|
|
85347
85507
|
}
|
|
85348
85508
|
function buildRobotStatus(robotCreds) {
|
|
85349
85509
|
const identity = resolveSessionIdentity(robotCreds.accessToken);
|
|
85510
|
+
const scopes = readTokenScopes(robotCreds.accessToken);
|
|
85350
85511
|
return {
|
|
85351
85512
|
loginStatus: "Logged in",
|
|
85352
85513
|
accessToken: robotCreds.accessToken,
|
|
@@ -85358,7 +85519,8 @@ function buildRobotStatus(robotCreds) {
|
|
|
85358
85519
|
issuer: robotCreds.issuer,
|
|
85359
85520
|
expiration: getTokenExpiration(robotCreds.accessToken),
|
|
85360
85521
|
source: "robot" /* Robot */,
|
|
85361
|
-
...identity ? { identity } : {}
|
|
85522
|
+
...identity ? { identity } : {},
|
|
85523
|
+
...scopes ? { scopes } : {}
|
|
85362
85524
|
};
|
|
85363
85525
|
}
|
|
85364
85526
|
var isFileNotFoundError = (error) => {
|
|
@@ -85625,7 +85787,8 @@ var getAuthContext = async (options = {}) => {
|
|
|
85625
85787
|
organizationId: status.organizationId,
|
|
85626
85788
|
organizationName: status.organizationName,
|
|
85627
85789
|
tenantId: status.tenantId,
|
|
85628
|
-
tenantName
|
|
85790
|
+
tenantName,
|
|
85791
|
+
identity: status.identity
|
|
85629
85792
|
};
|
|
85630
85793
|
};
|
|
85631
85794
|
// ../auth/src/authProfileDetails.ts
|
|
@@ -87291,6 +87454,57 @@ function settlePromiseLike2(thenable) {
|
|
|
87291
87454
|
return Promise.resolve(thenable).then((data) => [undefined, data]).catch((error46) => [toError(error46), undefined]);
|
|
87292
87455
|
}
|
|
87293
87456
|
|
|
87457
|
+
// ../common/src/error-graph.ts
|
|
87458
|
+
function* walkErrorGraph(error46) {
|
|
87459
|
+
const queue = [error46];
|
|
87460
|
+
const seen = new Set;
|
|
87461
|
+
for (let steps = 0;queue.length > 0 && steps < 32; steps++) {
|
|
87462
|
+
const current = queue.shift();
|
|
87463
|
+
if (current === null || typeof current !== "object")
|
|
87464
|
+
continue;
|
|
87465
|
+
if (seen.has(current))
|
|
87466
|
+
continue;
|
|
87467
|
+
seen.add(current);
|
|
87468
|
+
const cur = current;
|
|
87469
|
+
yield cur;
|
|
87470
|
+
if (cur.cause !== undefined)
|
|
87471
|
+
queue.push(cur.cause);
|
|
87472
|
+
if (Array.isArray(cur.errors))
|
|
87473
|
+
queue.push(...cur.errors);
|
|
87474
|
+
}
|
|
87475
|
+
return;
|
|
87476
|
+
}
|
|
87477
|
+
function parseHttpStatusFromMessage(message) {
|
|
87478
|
+
const match2 = /^HTTP\s+(\d{3})(?::|\s|-|$)/i.exec(message.trim());
|
|
87479
|
+
if (!match2)
|
|
87480
|
+
return;
|
|
87481
|
+
const status = Number(match2[1]);
|
|
87482
|
+
return Number.isInteger(status) && status >= 100 && status <= 599 ? status : undefined;
|
|
87483
|
+
}
|
|
87484
|
+
function findHttpStatusInGraph(error46) {
|
|
87485
|
+
for (const node of walkErrorGraph(error46)) {
|
|
87486
|
+
const response = node.response;
|
|
87487
|
+
const explicit = typeof node.status === "number" ? node.status : response?.status;
|
|
87488
|
+
if (typeof explicit === "number" && explicit >= 400 && explicit <= 599) {
|
|
87489
|
+
return explicit;
|
|
87490
|
+
}
|
|
87491
|
+
if (typeof node.message === "string") {
|
|
87492
|
+
const parsed = parseHttpStatusFromMessage(node.message);
|
|
87493
|
+
if (parsed !== undefined && parsed >= 400) {
|
|
87494
|
+
return parsed;
|
|
87495
|
+
}
|
|
87496
|
+
}
|
|
87497
|
+
}
|
|
87498
|
+
return;
|
|
87499
|
+
}
|
|
87500
|
+
|
|
87501
|
+
// ../common/src/local-permission-codes.ts
|
|
87502
|
+
var LOCAL_PERMISSION_ERROR_CODES = new Set([
|
|
87503
|
+
"EACCES",
|
|
87504
|
+
"EPERM",
|
|
87505
|
+
"EROFS"
|
|
87506
|
+
]);
|
|
87507
|
+
|
|
87294
87508
|
// ../common/src/error-handler.ts
|
|
87295
87509
|
var NETWORK_ERROR_CODES = new Set([
|
|
87296
87510
|
"ECONNREFUSED",
|
|
@@ -87315,7 +87529,7 @@ var TLS_ERROR_CODES = new Set([
|
|
|
87315
87529
|
]);
|
|
87316
87530
|
var TLS_INSTRUCTIONS = "The server's TLS certificate could not be verified. Most often a " + "corporate proxy/firewall re-signs HTTPS with a root CA that Node does " + "not trust — set NODE_EXTRA_CA_CERTS to that CA's PEM file (and HTTPS_PROXY " + "if you connect through a proxy). If the certificate is instead expired or " + "its hostname does not match, fix the endpoint URL or the system clock. " + "Then retry.";
|
|
87317
87531
|
var NETWORK_INSTRUCTIONS = "Could not reach the UiPath service. Check your network connection and " + "VPN, confirm any HTTP_PROXY/HTTPS_PROXY/NO_PROXY settings are correct, " + "then retry.";
|
|
87318
|
-
var
|
|
87532
|
+
var LOCAL_PERMISSION_MESSAGE_PATTERN = new RegExp(`\\b(${[...LOCAL_PERMISSION_ERROR_CODES].join("|")})\\b`);
|
|
87319
87533
|
// ../common/src/exit-code.ts
|
|
87320
87534
|
function setExitCode(code2) {
|
|
87321
87535
|
process.exitCode = code2;
|
|
@@ -87583,6 +87797,9 @@ var AUTH_ERROR_CODES = new Set([
|
|
|
87583
87797
|
"authentication_required",
|
|
87584
87798
|
"permission_denied"
|
|
87585
87799
|
]);
|
|
87800
|
+
var LOCAL_PERMISSION_CLI_ERROR_CODES = new Set([
|
|
87801
|
+
"local_permission_denied"
|
|
87802
|
+
]);
|
|
87586
87803
|
var VALIDATION_ERROR_CODES = new Set(["invalid_argument"]);
|
|
87587
87804
|
var NETWORK_HTTP_ERROR_CODES = new Set([
|
|
87588
87805
|
"network_error",
|
|
@@ -87723,6 +87940,9 @@ function classifyFromErrorCode(errorCode2) {
|
|
|
87723
87940
|
if (AUTH_ERROR_CODES.has(errorCode2)) {
|
|
87724
87941
|
return "auth";
|
|
87725
87942
|
}
|
|
87943
|
+
if (LOCAL_PERMISSION_CLI_ERROR_CODES.has(errorCode2)) {
|
|
87944
|
+
return "local_permission";
|
|
87945
|
+
}
|
|
87726
87946
|
if (VALIDATION_ERROR_CODES.has(errorCode2)) {
|
|
87727
87947
|
return "validation";
|
|
87728
87948
|
}
|
|
@@ -87734,6 +87954,15 @@ function classifyFromErrorCode(errorCode2) {
|
|
|
87734
87954
|
}
|
|
87735
87955
|
return;
|
|
87736
87956
|
}
|
|
87957
|
+
function hasLocalPermissionCode(error46) {
|
|
87958
|
+
for (const node of walkErrorGraph(error46)) {
|
|
87959
|
+
const code2 = node.code;
|
|
87960
|
+
if (typeof code2 === "string" && LOCAL_PERMISSION_ERROR_CODES.has(code2)) {
|
|
87961
|
+
return true;
|
|
87962
|
+
}
|
|
87963
|
+
}
|
|
87964
|
+
return false;
|
|
87965
|
+
}
|
|
87737
87966
|
function classifyFromError(error46) {
|
|
87738
87967
|
const code2 = findCodeInCauseChain(error46);
|
|
87739
87968
|
if (code2) {
|
|
@@ -87750,6 +87979,9 @@ function classifyFromError(error46) {
|
|
|
87750
87979
|
return "missing_dependency";
|
|
87751
87980
|
}
|
|
87752
87981
|
}
|
|
87982
|
+
if (hasLocalPermissionCode(error46)) {
|
|
87983
|
+
return "local_permission";
|
|
87984
|
+
}
|
|
87753
87985
|
const message = stringField(error46, "message");
|
|
87754
87986
|
if (message?.includes("fetch failed") === true) {
|
|
87755
87987
|
return "network_http";
|
|
@@ -87765,7 +87997,7 @@ function classifyError(input) {
|
|
|
87765
87997
|
if (recorded?.errorClass) {
|
|
87766
87998
|
return recorded.errorClass;
|
|
87767
87999
|
}
|
|
87768
|
-
const status = recorded?.context?.httpStatus;
|
|
88000
|
+
const status = recorded?.context?.httpStatus ?? findHttpStatusInGraph(input.error);
|
|
87769
88001
|
if (status !== undefined) {
|
|
87770
88002
|
return classifyHttpStatus(status);
|
|
87771
88003
|
}
|
|
@@ -87788,17 +88020,18 @@ function buildCommandTerminalTelemetryProperties(input) {
|
|
|
87788
88020
|
const errorClass = outcome === "success" || outcome === "no_op" ? undefined : outcome === "cancelled" ? "user_cancelled" : classifyError(input);
|
|
87789
88021
|
const terminalSignal = terminalSignalFor(input, outcome);
|
|
87790
88022
|
return {
|
|
87791
|
-
|
|
87792
|
-
|
|
87793
|
-
...errorClass ? {
|
|
87794
|
-
...terminalSignal ? {
|
|
88023
|
+
[CommandDimensions.ExitCode]: input.exitCode,
|
|
88024
|
+
[CommandDimensions.TerminalOutcome]: outcome,
|
|
88025
|
+
...errorClass ? { [CommandDimensions.ErrorClass]: errorClass } : {},
|
|
88026
|
+
...terminalSignal ? { [CommandDimensions.TerminalSignal]: terminalSignal } : {}
|
|
87795
88027
|
};
|
|
87796
88028
|
}
|
|
87797
88029
|
|
|
87798
88030
|
// ../common/src/telemetry/telemetry-events.ts
|
|
87799
88031
|
var CommonTelemetryEvents = {
|
|
87800
|
-
|
|
87801
|
-
|
|
88032
|
+
Start: "Application.Start",
|
|
88033
|
+
Error: "Application.Error",
|
|
88034
|
+
ShipSucceeded: "Cli.ShipSucceeded"
|
|
87802
88035
|
};
|
|
87803
88036
|
|
|
87804
88037
|
// ../common/src/telemetry/telemetry-init.ts
|
|
@@ -88009,8 +88242,8 @@ function detectExecutionContext(options = {}) {
|
|
|
88009
88242
|
function getExecutionContextTelemetryProperties() {
|
|
88010
88243
|
const detected = detectExecutionContext();
|
|
88011
88244
|
return {
|
|
88012
|
-
|
|
88013
|
-
...detected.ciProvider ? {
|
|
88245
|
+
[BaseDimensions.ExecutionContext]: detected.executionContext,
|
|
88246
|
+
...detected.ciProvider ? { [BaseDimensions.CiProvider]: detected.ciProvider } : {}
|
|
88014
88247
|
};
|
|
88015
88248
|
}
|
|
88016
88249
|
// ../common/src/telemetry/node-context-storage.ts
|
|
@@ -88053,7 +88286,7 @@ function getInboundTraceContext() {
|
|
|
88053
88286
|
var TELEMETRY_SESSION_ID_ENV = "UIPATH_SESSION_ID";
|
|
88054
88287
|
var SESSION_ID_MAX_LENGTH = 64;
|
|
88055
88288
|
var RANDOM_SESSION_ID_LENGTH = 32;
|
|
88056
|
-
var TELEMETRY_SESSION_SOURCE_PROPERTY = "
|
|
88289
|
+
var TELEMETRY_SESSION_SOURCE_PROPERTY = "SessionIdSource";
|
|
88057
88290
|
var CONTROL_CHARACTERS = /\p{Cc}/gu;
|
|
88058
88291
|
var INHERITED_SESSION_SOURCES = [
|
|
88059
88292
|
{ envVar: "CLAUDE_CODE_SESSION_ID", source: "claude-code" },
|
|
@@ -88105,6 +88338,9 @@ function resolveTelemetrySession() {
|
|
|
88105
88338
|
telemetrySessionSlot.set(resolved);
|
|
88106
88339
|
return resolved;
|
|
88107
88340
|
}
|
|
88341
|
+
function getTelemetrySessionId() {
|
|
88342
|
+
return resolveTelemetrySession().id;
|
|
88343
|
+
}
|
|
88108
88344
|
function getTelemetrySessionSource() {
|
|
88109
88345
|
return resolveTelemetrySession().source;
|
|
88110
88346
|
}
|
|
@@ -88179,7 +88415,10 @@ class TelemetryService2 {
|
|
|
88179
88415
|
} catch (error46) {
|
|
88180
88416
|
const durationMs = clock.elapsedMs();
|
|
88181
88417
|
const err = error46 instanceof Error ? error46 : new Error(String(error46));
|
|
88182
|
-
await this.telemetryProvider.trackRequest(this.spanFor(name, durationMs, false, {
|
|
88418
|
+
await this.telemetryProvider.trackRequest(this.spanFor(name, durationMs, false, {
|
|
88419
|
+
...properties,
|
|
88420
|
+
[CommandDimensions.ErrorMessage]: err.message
|
|
88421
|
+
}, context));
|
|
88183
88422
|
throw error46;
|
|
88184
88423
|
}
|
|
88185
88424
|
}
|
|
@@ -88250,7 +88489,10 @@ class TelemetryService2 {
|
|
|
88250
88489
|
const durationMs = clock.elapsedMs();
|
|
88251
88490
|
const err = error46 instanceof Error ? error46 : new Error(String(error46));
|
|
88252
88491
|
await this.telemetryProvider.trackDependency({
|
|
88253
|
-
...this.spanFor(name, durationMs, false, {
|
|
88492
|
+
...this.spanFor(name, durationMs, false, {
|
|
88493
|
+
...properties,
|
|
88494
|
+
[CommandDimensions.ErrorMessage]: err.message
|
|
88495
|
+
}, childContext),
|
|
88254
88496
|
type: type2
|
|
88255
88497
|
});
|
|
88256
88498
|
throw error46;
|
|
@@ -88285,9 +88527,10 @@ class TelemetryService2 {
|
|
|
88285
88527
|
...globalProperties,
|
|
88286
88528
|
...this.defaultProperties,
|
|
88287
88529
|
...redactProperties(properties ?? {}),
|
|
88288
|
-
[TELEMETRY_SESSION_SOURCE_PROPERTY]: getTelemetrySessionSource()
|
|
88530
|
+
[TELEMETRY_SESSION_SOURCE_PROPERTY]: getTelemetrySessionSource(),
|
|
88531
|
+
[BaseDimensions.SessionId]: this.telemetryProvider.getSessionId?.() ?? getTelemetrySessionId()
|
|
88289
88532
|
};
|
|
88290
|
-
return enriched;
|
|
88533
|
+
return lowercaseIdDimensionValues(enriched);
|
|
88291
88534
|
}
|
|
88292
88535
|
generateId() {
|
|
88293
88536
|
const bytes = new Uint8Array(8);
|
|
@@ -89044,7 +89287,165 @@ class FilterImplicitLimitError extends Error {
|
|
|
89044
89287
|
this.instructions = "Pass --limit <n> to choose how many records the filter applies to. " + "To filter over all records, pass the command's maximum accepted --limit (see the option's description in --help).";
|
|
89045
89288
|
}
|
|
89046
89289
|
}
|
|
89047
|
-
function
|
|
89290
|
+
function countRecords(data) {
|
|
89291
|
+
if (Array.isArray(data))
|
|
89292
|
+
return data.length;
|
|
89293
|
+
return data == null ? 0 : 1;
|
|
89294
|
+
}
|
|
89295
|
+
function availableFields(data) {
|
|
89296
|
+
const records = Array.isArray(data) ? data : [data];
|
|
89297
|
+
const keys2 = new Set;
|
|
89298
|
+
for (const record2 of records) {
|
|
89299
|
+
if (record2 && typeof record2 === "object" && !Array.isArray(record2)) {
|
|
89300
|
+
for (const key of Object.keys(record2))
|
|
89301
|
+
keys2.add(key);
|
|
89302
|
+
}
|
|
89303
|
+
}
|
|
89304
|
+
return [...keys2];
|
|
89305
|
+
}
|
|
89306
|
+
function decodeQuotedIdentifier(whole, inner) {
|
|
89307
|
+
const [error46, decoded] = catchError3(() => JSON.parse(whole));
|
|
89308
|
+
if (!error46 && typeof decoded === "string")
|
|
89309
|
+
return decoded;
|
|
89310
|
+
return inner.replace(/\\(.)/g, "$1");
|
|
89311
|
+
}
|
|
89312
|
+
function referencedFields(filter) {
|
|
89313
|
+
const top = new Set;
|
|
89314
|
+
const nested = new Set;
|
|
89315
|
+
const withoutValueLiterals = filter.replace(/'(?:\\.|[^'\\])*'/g, " ").replace(/`(?:\\.|[^`\\])*`/g, " ");
|
|
89316
|
+
const isPathTail = (text, index) => text[index - 1] === "." && /[A-Za-z0-9_"]/.test(text[index - 2] ?? "");
|
|
89317
|
+
const quoted = [];
|
|
89318
|
+
const withoutLiterals = withoutValueLiterals.replace(/"((?:\\.|[^"\\])*)"/g, (whole, name, index) => {
|
|
89319
|
+
const isAlias = /^\s*:/.test(withoutValueLiterals.slice(index + whole.length));
|
|
89320
|
+
if (!isAlias) {
|
|
89321
|
+
quoted.push({
|
|
89322
|
+
name: decodeQuotedIdentifier(whole, name),
|
|
89323
|
+
index,
|
|
89324
|
+
tail: isPathTail(withoutValueLiterals, index)
|
|
89325
|
+
});
|
|
89326
|
+
}
|
|
89327
|
+
return `"${" ".repeat(whole.length - 2)}"`;
|
|
89328
|
+
});
|
|
89329
|
+
const descent = /[A-Za-z0-9_"]\s*[.[]/.exec(withoutLiterals);
|
|
89330
|
+
const rootEnd = descent ? descent.index + 1 : Number.POSITIVE_INFINITY;
|
|
89331
|
+
const place = (name, index, tail) => {
|
|
89332
|
+
if (tail || index >= rootEnd)
|
|
89333
|
+
nested.add(name);
|
|
89334
|
+
else
|
|
89335
|
+
top.add(name);
|
|
89336
|
+
};
|
|
89337
|
+
for (const entry of quoted)
|
|
89338
|
+
place(entry.name, entry.index, entry.tail);
|
|
89339
|
+
const identifiers = withoutLiterals.matchAll(/([A-Za-z_][A-Za-z0-9_]*)(\s*[:(])?/g);
|
|
89340
|
+
const reserved = new Set(["true", "false", "null", "and", "or", "not"]);
|
|
89341
|
+
for (const match2 of identifiers) {
|
|
89342
|
+
const [, name, trailing] = match2;
|
|
89343
|
+
if (trailing || reserved.has(name))
|
|
89344
|
+
continue;
|
|
89345
|
+
place(name, match2.index, isPathTail(withoutLiterals, match2.index));
|
|
89346
|
+
}
|
|
89347
|
+
return {
|
|
89348
|
+
top: [...top],
|
|
89349
|
+
nested: [...nested].filter((name) => !top.has(name)),
|
|
89350
|
+
hasPredicate: /\[\s*\?/.test(withoutValueLiterals)
|
|
89351
|
+
};
|
|
89352
|
+
}
|
|
89353
|
+
function appearsBelowTopLevel(data, name) {
|
|
89354
|
+
let budget = 2000;
|
|
89355
|
+
const visit = (value, depth) => {
|
|
89356
|
+
if (budget-- <= 0 || depth > 4)
|
|
89357
|
+
return false;
|
|
89358
|
+
if (value === null || typeof value !== "object")
|
|
89359
|
+
return false;
|
|
89360
|
+
if (Array.isArray(value))
|
|
89361
|
+
return value.some((entry) => visit(entry, depth));
|
|
89362
|
+
const record2 = value;
|
|
89363
|
+
if (depth > 0 && Object.hasOwn(record2, name))
|
|
89364
|
+
return true;
|
|
89365
|
+
return Object.values(record2).some((entry) => visit(entry, depth + 1));
|
|
89366
|
+
};
|
|
89367
|
+
return visit(data, 0);
|
|
89368
|
+
}
|
|
89369
|
+
function alwaysNullKeys(records) {
|
|
89370
|
+
const objects = records.filter((r) => r != null && typeof r === "object" && !Array.isArray(r));
|
|
89371
|
+
if (objects.length === 0 || objects.length !== records.length)
|
|
89372
|
+
return [];
|
|
89373
|
+
const keys2 = [...new Set(objects.flatMap((o) => Object.keys(o)))];
|
|
89374
|
+
if (keys2.length === 0)
|
|
89375
|
+
return [];
|
|
89376
|
+
const nullKeys = keys2.filter((key) => objects.every((record2) => record2[key] === null));
|
|
89377
|
+
return nullKeys.length === keys2.length ? nullKeys : [];
|
|
89378
|
+
}
|
|
89379
|
+
function carriesOnlyNulls(value) {
|
|
89380
|
+
if (value === null)
|
|
89381
|
+
return true;
|
|
89382
|
+
if (Array.isArray(value)) {
|
|
89383
|
+
return value.length > 0 && value.every(carriesOnlyNulls);
|
|
89384
|
+
}
|
|
89385
|
+
if (typeof value === "object" && value !== undefined) {
|
|
89386
|
+
const values = Object.values(value);
|
|
89387
|
+
return values.length > 0 && values.every(carriesOnlyNulls);
|
|
89388
|
+
}
|
|
89389
|
+
return false;
|
|
89390
|
+
}
|
|
89391
|
+
function nameList(names, cap2 = 12) {
|
|
89392
|
+
const shown = names.slice(0, cap2).map((n2) => `\`${n2}\``);
|
|
89393
|
+
const rest = names.length - shown.length;
|
|
89394
|
+
return shown.join(", ") + (rest > 0 ? `, and ${rest} more` : "");
|
|
89395
|
+
}
|
|
89396
|
+
function buildFilterWarning(filter, data, outcome) {
|
|
89397
|
+
const present = availableFields(data);
|
|
89398
|
+
const refs = referencedFields(filter);
|
|
89399
|
+
const unknown2 = refs.top.filter((name) => !present.includes(name) && !appearsBelowTopLevel(data, name));
|
|
89400
|
+
const unchecked = refs.nested.filter((name) => !present.includes(name));
|
|
89401
|
+
const count = countRecords(data);
|
|
89402
|
+
const scope = `${count} record(s)`;
|
|
89403
|
+
const isNotAField = (names) => `${nameList(names)} ${names.length === 1 ? "is not a field" : "are not fields"} on the ${scope} it read`;
|
|
89404
|
+
const soundness = unchecked.length > 0 ? `${nameList(unchecked)} ${unchecked.length === 1 ? "reads" : "read"} below the top level, so ${unchecked.length === 1 ? "it was" : "they were"} not checked against the record keys` : refs.top.length > 0 ? "every field it names exists" : "";
|
|
89405
|
+
const withSoundness = (base) => soundness ? `${base}, and ${soundness}` : base;
|
|
89406
|
+
let detail;
|
|
89407
|
+
let lede;
|
|
89408
|
+
if (outcome.kind === "null-elements") {
|
|
89409
|
+
lede = "returned only null values";
|
|
89410
|
+
const projected = `all ${outcome.count} of the elements it projected are null`;
|
|
89411
|
+
if (unknown2.length > 0) {
|
|
89412
|
+
detail = `${projected}, because ${isNotAField(unknown2)}`;
|
|
89413
|
+
} else if (unchecked.length > 0) {
|
|
89414
|
+
detail = withSoundness(projected);
|
|
89415
|
+
} else {
|
|
89416
|
+
detail = `${projected}, and every field it names exists — a multi-select list ` + `(\`[A, B]\`) reads each entry against \`Data\` itself, so on a list ` + `result use \`[].[A, B]\` or \`[].{a: A, b: B}\` to read the records`;
|
|
89417
|
+
}
|
|
89418
|
+
} else if (outcome.kind === "null-rows") {
|
|
89419
|
+
lede = "returned only null values";
|
|
89420
|
+
const projected = `every value it projected is null on all ${outcome.count} row(s)`;
|
|
89421
|
+
detail = unknown2.length > 0 ? `${projected}, because ${isNotAField(unknown2)}` : withSoundness(projected);
|
|
89422
|
+
} else if (outcome.kind === "null-values") {
|
|
89423
|
+
lede = "returned only null values";
|
|
89424
|
+
const projected = `every key it projected (${nameList(outcome.keys)}) is null`;
|
|
89425
|
+
const sameSet = unknown2.length === outcome.keys.length && outcome.keys.every((k) => unknown2.includes(k));
|
|
89426
|
+
if (sameSet) {
|
|
89427
|
+
detail = `${isNotAField(outcome.keys)}, so every key it projected is null`;
|
|
89428
|
+
} else if (unknown2.length > 0) {
|
|
89429
|
+
detail = `${projected}, because ${isNotAField(unknown2)}`;
|
|
89430
|
+
} else {
|
|
89431
|
+
detail = withSoundness(`${projected} on all ${scope}`);
|
|
89432
|
+
}
|
|
89433
|
+
} else {
|
|
89434
|
+
lede = "returned nothing";
|
|
89435
|
+
if (unknown2.length > 0) {
|
|
89436
|
+
detail = isNotAField(unknown2);
|
|
89437
|
+
} else {
|
|
89438
|
+
const selection = refs.hasPredicate ? "no record matched" : "the expression resolved to no value";
|
|
89439
|
+
detail = withSoundness(`${selection} — it read ${scope}`);
|
|
89440
|
+
}
|
|
89441
|
+
}
|
|
89442
|
+
const fields = present.length > 0 ? ` Available fields: ${nameList(present)}.` : "";
|
|
89443
|
+
return `--output-filter ${JSON.stringify(filter)} ${lede}: ${detail}.${fields}`;
|
|
89444
|
+
}
|
|
89445
|
+
function appendWarning(existing, note) {
|
|
89446
|
+
return existing ? `${existing} ${note}` : note;
|
|
89447
|
+
}
|
|
89448
|
+
function applyFilter(data, filter, onWarning) {
|
|
89048
89449
|
const codec2 = requireJmespath();
|
|
89049
89450
|
let result;
|
|
89050
89451
|
try {
|
|
@@ -89052,9 +89453,34 @@ function applyFilter(data, filter) {
|
|
|
89052
89453
|
} catch (err) {
|
|
89053
89454
|
throw new FilterEvaluationError(filter, err);
|
|
89054
89455
|
}
|
|
89055
|
-
|
|
89456
|
+
const inputCount = countRecords(data);
|
|
89457
|
+
const warn = (outcome) => {
|
|
89458
|
+
if (inputCount === 0)
|
|
89459
|
+
return;
|
|
89460
|
+
const note = buildFilterWarning(filter, data, outcome);
|
|
89461
|
+
getOutputSink().writeErr(`[WARN] ${note}
|
|
89462
|
+
`);
|
|
89463
|
+
onWarning?.(note);
|
|
89464
|
+
};
|
|
89465
|
+
const warnIfAllNull = (records) => {
|
|
89466
|
+
const keys2 = alwaysNullKeys(records);
|
|
89467
|
+
if (keys2.length > 0)
|
|
89468
|
+
warn({ kind: "null-values", keys: keys2 });
|
|
89469
|
+
};
|
|
89470
|
+
if (result == null) {
|
|
89471
|
+
warn({ kind: "empty" });
|
|
89056
89472
|
return [];
|
|
89473
|
+
}
|
|
89057
89474
|
if (Array.isArray(result)) {
|
|
89475
|
+
if (result.length === 0) {
|
|
89476
|
+
warn({ kind: "empty" });
|
|
89477
|
+
} else if (result.every((entry) => entry === null)) {
|
|
89478
|
+
warn({ kind: "null-elements", count: result.length });
|
|
89479
|
+
} else if (result.every((entry) => Array.isArray(entry)) && carriesOnlyNulls(result)) {
|
|
89480
|
+
warn({ kind: "null-rows", count: result.length });
|
|
89481
|
+
} else {
|
|
89482
|
+
warnIfAllNull(result);
|
|
89483
|
+
}
|
|
89058
89484
|
if (result.length > 0 && typeof result[0] !== "object") {
|
|
89059
89485
|
const fieldMatch = filter.match(/\.(\w+)$/);
|
|
89060
89486
|
const key = fieldMatch ? fieldMatch[1] : "Value";
|
|
@@ -89062,10 +89488,30 @@ function applyFilter(data, filter) {
|
|
|
89062
89488
|
}
|
|
89063
89489
|
return result;
|
|
89064
89490
|
}
|
|
89065
|
-
if (typeof result === "object")
|
|
89491
|
+
if (typeof result === "object") {
|
|
89492
|
+
warnIfAllNull([result]);
|
|
89066
89493
|
return result;
|
|
89494
|
+
}
|
|
89067
89495
|
return { Value: result };
|
|
89068
89496
|
}
|
|
89497
|
+
function filterFailureData(envelope) {
|
|
89498
|
+
const filter = getOutputFilter();
|
|
89499
|
+
const data = envelope.Data;
|
|
89500
|
+
if (!filter || data == null)
|
|
89501
|
+
return;
|
|
89502
|
+
let note;
|
|
89503
|
+
const [filterError, filtered] = catchError3(() => applyFilter(data, filter, (n2) => {
|
|
89504
|
+
note = n2;
|
|
89505
|
+
}));
|
|
89506
|
+
if (filterError) {
|
|
89507
|
+
envelope.Warning = appendWarning(envelope.Warning, `--output-filter was not applied, so Data is shown in full: ${filterError.message}`);
|
|
89508
|
+
return;
|
|
89509
|
+
}
|
|
89510
|
+
envelope.Data = filtered;
|
|
89511
|
+
if (note) {
|
|
89512
|
+
envelope.Warning = appendWarning(envelope.Warning, note);
|
|
89513
|
+
}
|
|
89514
|
+
}
|
|
89069
89515
|
function defaultErrorCodeForResult(result) {
|
|
89070
89516
|
switch (result) {
|
|
89071
89517
|
case RESULTS.AuthenticationError:
|
|
@@ -89080,7 +89526,7 @@ function defaultErrorCodeForResult(result) {
|
|
|
89080
89526
|
return "unknown_error";
|
|
89081
89527
|
}
|
|
89082
89528
|
}
|
|
89083
|
-
function
|
|
89529
|
+
function parseHttpStatusFromMessage2(message) {
|
|
89084
89530
|
const match2 = /^HTTP\s+(\d{3})(?::|\s|-|$)/i.exec(message.trim());
|
|
89085
89531
|
if (!match2)
|
|
89086
89532
|
return;
|
|
@@ -89109,10 +89555,10 @@ function defaultErrorCodeForHttpStatus(status) {
|
|
|
89109
89555
|
return "server_error";
|
|
89110
89556
|
return;
|
|
89111
89557
|
}
|
|
89112
|
-
var LOCAL_PERMISSION_TEXT_PATTERN =
|
|
89558
|
+
var LOCAL_PERMISSION_TEXT_PATTERN = new RegExp(`(?:\\b|\\()(?:${[...LOCAL_PERMISSION_ERROR_CODES].join("|")})(?::\\s|\\))`);
|
|
89113
89559
|
function defaultErrorCodeForFailure(data) {
|
|
89114
89560
|
if (data.Result === RESULTS.Failure) {
|
|
89115
|
-
const status = data.Context?.httpStatus ??
|
|
89561
|
+
const status = data.Context?.httpStatus ?? parseHttpStatusFromMessage2(data.Message);
|
|
89116
89562
|
const errorCode2 = defaultErrorCodeForHttpStatus(status);
|
|
89117
89563
|
if (errorCode2)
|
|
89118
89564
|
return errorCode2;
|
|
@@ -89148,8 +89594,14 @@ var OutputFormatter;
|
|
|
89148
89594
|
}
|
|
89149
89595
|
const filter = getOutputFilter();
|
|
89150
89596
|
if (filter) {
|
|
89151
|
-
|
|
89597
|
+
let note;
|
|
89598
|
+
const filtered = applyFilter(data.Data, filter, (n2) => {
|
|
89599
|
+
note = n2;
|
|
89600
|
+
});
|
|
89152
89601
|
data.Data = normalize ? normalizeDataKeys(filtered, verbatim, subtrees && { refs: subtrees.refs, mode: "skip" }) : filtered;
|
|
89602
|
+
if (note) {
|
|
89603
|
+
data.Warning = appendWarning(data.Warning, note);
|
|
89604
|
+
}
|
|
89153
89605
|
}
|
|
89154
89606
|
logOutput(normalizeOutputKeys(data), getOutputFormat(), options?.tableRowStyle);
|
|
89155
89607
|
}
|
|
@@ -89177,12 +89629,13 @@ var OutputFormatter;
|
|
|
89177
89629
|
delete envelope.TelemetryErrorClass;
|
|
89178
89630
|
delete envelope.TelemetryTerminalOutcome;
|
|
89179
89631
|
delete envelope.TelemetryTerminalSignal;
|
|
89632
|
+
filterFailureData(envelope);
|
|
89180
89633
|
if (!suppressTelemetry) {
|
|
89181
89634
|
telemetry.trackEvent(CommonTelemetryEvents.Error, {
|
|
89182
|
-
|
|
89183
|
-
|
|
89184
|
-
|
|
89185
|
-
|
|
89635
|
+
[ErrorDimensions.Result]: data.Result,
|
|
89636
|
+
[ErrorDimensions.ErrorCode]: data.ErrorCode,
|
|
89637
|
+
[ErrorDimensions.Retry]: data.Retry,
|
|
89638
|
+
[ErrorDimensions.ErrorMessage]: data.Message
|
|
89186
89639
|
});
|
|
89187
89640
|
}
|
|
89188
89641
|
logOutput(normalizeOutputKeys(envelope), getOutputFormat());
|
|
@@ -89225,13 +89678,20 @@ var OutputFormatter;
|
|
|
89225
89678
|
OutputFormatter.log = log;
|
|
89226
89679
|
function formatToString(data) {
|
|
89227
89680
|
const filter = getOutputFilter();
|
|
89681
|
+
const envelope = data;
|
|
89228
89682
|
if ("Data" in data && data.Data != null) {
|
|
89229
89683
|
data.Data = normalizeDataKeys(data.Data);
|
|
89230
89684
|
if (filter) {
|
|
89231
|
-
|
|
89685
|
+
let note;
|
|
89686
|
+
data.Data = normalizeDataKeys(applyFilter(data.Data, filter, (n2) => {
|
|
89687
|
+
note = n2;
|
|
89688
|
+
}));
|
|
89689
|
+
if (note) {
|
|
89690
|
+
envelope.Warning = appendWarning(envelope.Warning, note);
|
|
89691
|
+
}
|
|
89232
89692
|
}
|
|
89233
89693
|
}
|
|
89234
|
-
const output = normalizeOutputKeys(
|
|
89694
|
+
const output = normalizeOutputKeys(envelope);
|
|
89235
89695
|
const lines = [];
|
|
89236
89696
|
const sink = getOutputSink();
|
|
89237
89697
|
printOutput(output, getOutputFormat(), (msg) => {
|
|
@@ -89281,7 +89741,7 @@ var LEGACY_SKILL_NAMESPACE = "uipath:";
|
|
|
89281
89741
|
var MAX_SKILL_NAME_LENGTH = 80;
|
|
89282
89742
|
var SKILL_NAME_PATTERN = /^[a-z0-9][a-z0-9-]*[a-z0-9]$/;
|
|
89283
89743
|
function productMode(productArea, mode) {
|
|
89284
|
-
return {
|
|
89744
|
+
return { ProductArea: productArea, Mode: mode };
|
|
89285
89745
|
}
|
|
89286
89746
|
function attributionRecord(groups) {
|
|
89287
89747
|
const record2 = {};
|
|
@@ -89339,6 +89799,7 @@ var COMMAND_ATTRIBUTION = commandAttribution([
|
|
|
89339
89799
|
["rpa", "build", ["uip.rpa-legacy"]],
|
|
89340
89800
|
["conversational", "operate", ["uip.conversational"]],
|
|
89341
89801
|
["agents", "build", ["uip.codedagent", "uip.agent"]],
|
|
89802
|
+
["coding-agents", "build", ["uip.coder"]],
|
|
89342
89803
|
["agenthub", "build", ["uip.agenthub"]],
|
|
89343
89804
|
["coded-apps", "build", ["uip.codedapp"]],
|
|
89344
89805
|
["functions", "build", ["uip.function", "uip.functions"]],
|
|
@@ -89424,32 +89885,64 @@ function normalizeSkillName(value) {
|
|
|
89424
89885
|
function buildCommandTelemetryAttribution(commandPath, skillSource) {
|
|
89425
89886
|
const skillName = normalizeSkillName(skillSource);
|
|
89426
89887
|
return {
|
|
89427
|
-
...skillName ? {
|
|
89888
|
+
...skillName ? { SkillName: skillName } : {},
|
|
89428
89889
|
...getCommandProductModeAttribution(commandPath)
|
|
89429
89890
|
};
|
|
89430
89891
|
}
|
|
89892
|
+
var AGENT_SESSION_ENV = {
|
|
89893
|
+
[BaseDimensions.AgentModel]: "UIPATH_AGENT_MODEL",
|
|
89894
|
+
[SkillsDimensions.PermissionMode]: "UIPATH_PERMISSION_MODE",
|
|
89895
|
+
[SkillsDimensions.EffortLevel]: "UIPATH_EFFORT_LEVEL",
|
|
89896
|
+
[SkillsDimensions.SkillsVersion]: "UIPATH_SKILLS_VERSION"
|
|
89897
|
+
};
|
|
89898
|
+
var MAX_TELEMETRY_TOKEN_LENGTH = 120;
|
|
89899
|
+
function sanitizeTelemetryToken(value) {
|
|
89900
|
+
return value.replace(/[^A-Za-z0-9:._/ -]/g, "_").slice(0, MAX_TELEMETRY_TOKEN_LENGTH);
|
|
89901
|
+
}
|
|
89902
|
+
function buildAgentSessionTelemetry(env) {
|
|
89903
|
+
const dimensions = {};
|
|
89904
|
+
for (const [key, variable] of Object.entries(AGENT_SESSION_ENV)) {
|
|
89905
|
+
const value = env[variable]?.trim();
|
|
89906
|
+
if (value) {
|
|
89907
|
+
dimensions[key] = sanitizeTelemetryToken(value);
|
|
89908
|
+
}
|
|
89909
|
+
}
|
|
89910
|
+
return dimensions;
|
|
89911
|
+
}
|
|
89431
89912
|
|
|
89432
89913
|
// ../common/src/telemetry/command-name.ts
|
|
89433
|
-
var
|
|
89914
|
+
var TELEMETRY_NAME_ROOT = "Cli";
|
|
89915
|
+
var CLI_COMMAND_ROOT = "uip";
|
|
89916
|
+
var TELEMETRY_NAME_BARE_ACTION = "Invoke";
|
|
89434
89917
|
function commandTelemetryName(parts) {
|
|
89918
|
+
const action = vetCommandTokens(parts).map(pascalizeToken).join("");
|
|
89919
|
+
return `${TELEMETRY_NAME_ROOT}.${action || TELEMETRY_NAME_BARE_ACTION}`;
|
|
89920
|
+
}
|
|
89921
|
+
function commandInvocationPath(parts) {
|
|
89922
|
+
return [CLI_COMMAND_ROOT, ...vetCommandTokens(parts)].join(" ");
|
|
89923
|
+
}
|
|
89924
|
+
function vetCommandTokens(parts) {
|
|
89435
89925
|
const tokens = [];
|
|
89436
89926
|
for (const part of parts) {
|
|
89437
|
-
const pieces = String(part ?? "").split(/\s+/).filter((token) => token && !token.startsWith("-") && token !==
|
|
89927
|
+
const pieces = String(part ?? "").split(/\s+/).filter((token) => token && !token.startsWith("-") && token !== CLI_COMMAND_ROOT);
|
|
89438
89928
|
if (pieces.every(isCommandToken)) {
|
|
89439
89929
|
tokens.push(...pieces);
|
|
89440
89930
|
continue;
|
|
89441
89931
|
}
|
|
89442
89932
|
tokens.push(UNKNOWN_TOKEN);
|
|
89443
89933
|
}
|
|
89444
|
-
return
|
|
89934
|
+
return tokens;
|
|
89935
|
+
}
|
|
89936
|
+
function pascalizeToken(token) {
|
|
89937
|
+
return token.split("-").filter(Boolean).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
|
|
89445
89938
|
}
|
|
89446
|
-
var COMMAND_TOKEN_PATTERN = /^[a-
|
|
89939
|
+
var COMMAND_TOKEN_PATTERN = /^[a-z][a-z0-9-]*$/;
|
|
89447
89940
|
var MAX_COMMAND_TOKEN_LENGTH = 32;
|
|
89448
89941
|
var GUID_TOKEN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
89449
89942
|
function isCommandToken(token) {
|
|
89450
|
-
return token.length <= MAX_COMMAND_TOKEN_LENGTH && COMMAND_TOKEN_PATTERN.test(token) && !GUID_TOKEN.test(token)
|
|
89943
|
+
return token.length <= MAX_COMMAND_TOKEN_LENGTH && COMMAND_TOKEN_PATTERN.test(token) && !GUID_TOKEN.test(token);
|
|
89451
89944
|
}
|
|
89452
|
-
var UNKNOWN_TOKEN = "
|
|
89945
|
+
var UNKNOWN_TOKEN = "unknown";
|
|
89453
89946
|
|
|
89454
89947
|
// ../common/src/telemetry/invocation-request.ts
|
|
89455
89948
|
var requestContextSlot = singleton("TelemetryInvocationRequestContext");
|
|
@@ -89545,7 +90038,7 @@ function withheldArgumentValues(cmd) {
|
|
|
89545
90038
|
});
|
|
89546
90039
|
return values;
|
|
89547
90040
|
}
|
|
89548
|
-
function
|
|
90041
|
+
function deriveCommandParts(cmd) {
|
|
89549
90042
|
const parts = [];
|
|
89550
90043
|
let current = cmd;
|
|
89551
90044
|
while (current) {
|
|
@@ -89558,14 +90051,13 @@ function deriveCommandPath(cmd) {
|
|
|
89558
90051
|
if (parts.length > 1) {
|
|
89559
90052
|
parts.shift();
|
|
89560
90053
|
}
|
|
89561
|
-
return
|
|
90054
|
+
return parts;
|
|
89562
90055
|
}
|
|
89563
90056
|
function isErrorContext(value) {
|
|
89564
90057
|
return value !== null && typeof value === "object";
|
|
89565
90058
|
}
|
|
89566
90059
|
function commandHelpHint(commandPath) {
|
|
89567
|
-
|
|
89568
|
-
return `An unexpected error occurred. Run '${command} --help' to verify command syntax, or run with --log-level debug for details.`;
|
|
90060
|
+
return `An unexpected error occurred. Run '${commandPath} --help' to verify command syntax, or run with --log-level debug for details.`;
|
|
89569
90061
|
}
|
|
89570
90062
|
function isPromptCancellation(error46) {
|
|
89571
90063
|
return error46 instanceof Error && error46.name === "ExitPromptError";
|
|
@@ -89590,7 +90082,9 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
89590
90082
|
yaml: getOutputFormat() === "yaml",
|
|
89591
90083
|
filter: getOutputFilter() !== undefined
|
|
89592
90084
|
});
|
|
89593
|
-
const
|
|
90085
|
+
const commandParts = deriveCommandParts(command);
|
|
90086
|
+
const telemetryName = commandTelemetryName(commandParts);
|
|
90087
|
+
const commandPath = commandInvocationPath(commandParts);
|
|
89594
90088
|
const props = typeof properties === "function" ? properties(...args) : properties;
|
|
89595
90089
|
markCommandStart();
|
|
89596
90090
|
const supplied = recordSuppliedArgumentValues(withheldArgumentValues(command));
|
|
@@ -89625,7 +90119,7 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
89625
90119
|
Result: finalResult,
|
|
89626
90120
|
...customErrorCode ? { ErrorCode: customErrorCode } : {},
|
|
89627
90121
|
Message: errorMessage2,
|
|
89628
|
-
Instructions: customInstructions ?? commandHelpHint(
|
|
90122
|
+
Instructions: customInstructions ?? commandHelpHint(commandPath),
|
|
89629
90123
|
...customRetry ? { Retry: customRetry } : {},
|
|
89630
90124
|
...customContext ? { Context: customContext } : {}
|
|
89631
90125
|
});
|
|
@@ -89642,8 +90136,8 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
89642
90136
|
recordedFailure,
|
|
89643
90137
|
pollSignal: context.pollSignal
|
|
89644
90138
|
});
|
|
89645
|
-
if (terminalTelemetry.
|
|
89646
|
-
telemetry.trackException(error46 instanceof Error ? error46 : new Error(String(error46)), {
|
|
90139
|
+
if (terminalTelemetry[CommandDimensions.ErrorClass] === "internal" && error46) {
|
|
90140
|
+
telemetry.trackException(error46 instanceof Error ? error46 : new Error(String(error46)), { [CommandDimensions.CommandName]: commandPath }, getInvocationRequestContext());
|
|
89647
90141
|
}
|
|
89648
90142
|
const commandParams = extractCommandParams(command);
|
|
89649
90143
|
if (props) {
|
|
@@ -89654,10 +90148,12 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
89654
90148
|
const baseProperties = redactProperties({
|
|
89655
90149
|
...commandParams,
|
|
89656
90150
|
...props,
|
|
89657
|
-
...buildCommandTelemetryAttribution(
|
|
89658
|
-
|
|
90151
|
+
...buildCommandTelemetryAttribution(commandPath, process.env.UIPATH_SKILL),
|
|
90152
|
+
...buildAgentSessionTelemetry(process.env),
|
|
90153
|
+
[CommandDimensions.CommandName]: commandPath,
|
|
90154
|
+
[CommandDimensions.IsCommand]: "true",
|
|
89659
90155
|
...terminalTelemetry,
|
|
89660
|
-
...errorMessage2 ? {
|
|
90156
|
+
...errorMessage2 ? { [CommandDimensions.ErrorMessage]: errorMessage2 } : {}
|
|
89661
90157
|
});
|
|
89662
90158
|
emitInvocationRequest(telemetryName, success2, baseProperties);
|
|
89663
90159
|
} finally {
|
|
@@ -89888,6 +90384,40 @@ var BOOLEAN_FLAGS = new Set(HOST_GLOBAL_FLAGS);
|
|
|
89888
90384
|
// ../common/src/interactivity-context.ts
|
|
89889
90385
|
var modeSlot = singleton("InteractivityMode");
|
|
89890
90386
|
var interactiveFlagSlot = singleton("InteractiveFlag");
|
|
90387
|
+
// ../common/src/mime-types.ts
|
|
90388
|
+
var MIME_TYPES_BY_EXTENSION = Object.freeze({
|
|
90389
|
+
pdf: "application/pdf",
|
|
90390
|
+
png: "image/png",
|
|
90391
|
+
jpg: "image/jpeg",
|
|
90392
|
+
jpeg: "image/jpeg",
|
|
90393
|
+
gif: "image/gif",
|
|
90394
|
+
webp: "image/webp",
|
|
90395
|
+
bmp: "image/bmp",
|
|
90396
|
+
tif: "image/tiff",
|
|
90397
|
+
tiff: "image/tiff",
|
|
90398
|
+
svg: "image/svg+xml",
|
|
90399
|
+
txt: "text/plain",
|
|
90400
|
+
log: "text/plain",
|
|
90401
|
+
md: "text/markdown",
|
|
90402
|
+
csv: "text/csv",
|
|
90403
|
+
tsv: "text/tab-separated-values",
|
|
90404
|
+
json: "application/json",
|
|
90405
|
+
xml: "application/xml",
|
|
90406
|
+
html: "text/html",
|
|
90407
|
+
htm: "text/html",
|
|
90408
|
+
yaml: "application/yaml",
|
|
90409
|
+
yml: "application/yaml",
|
|
90410
|
+
doc: "application/msword",
|
|
90411
|
+
docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
90412
|
+
xls: "application/vnd.ms-excel",
|
|
90413
|
+
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
90414
|
+
ppt: "application/vnd.ms-powerpoint",
|
|
90415
|
+
pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
90416
|
+
zip: "application/zip",
|
|
90417
|
+
mp3: "audio/mpeg",
|
|
90418
|
+
wav: "audio/wav",
|
|
90419
|
+
mp4: "video/mp4"
|
|
90420
|
+
});
|
|
89891
90421
|
// ../common/src/polling/types.ts
|
|
89892
90422
|
var PollOutcome = {
|
|
89893
90423
|
Completed: "completed",
|
|
@@ -91724,4 +92254,4 @@ export {
|
|
|
91724
92254
|
validateRequiredParameters
|
|
91725
92255
|
};
|
|
91726
92256
|
|
|
91727
|
-
//# debugId=
|
|
92257
|
+
//# debugId=DFAD4E1BA02B204564756E2164756E21
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@uipath/integrationservice-sdk",
|
|
3
3
|
"author": "UiPath",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.204.0-preview.211",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/UiPath/cli.git",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@uipath/integration-service-design-time": "0.25.2"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "275e01f1f6098d4c3bc9673f5225f33372822534"
|
|
35
35
|
}
|