@uipath/uipath-typescript 1.3.7 → 1.3.9
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/assets/index.cjs +64 -274
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/index.mjs +64 -274
- package/dist/attachments/index.cjs +62 -271
- package/dist/attachments/index.d.ts +1 -0
- package/dist/attachments/index.mjs +62 -271
- package/dist/buckets/index.cjs +93 -274
- package/dist/buckets/index.d.ts +51 -1
- package/dist/buckets/index.mjs +93 -274
- package/dist/cases/index.cjs +580 -336
- package/dist/cases/index.d.ts +690 -3
- package/dist/cases/index.mjs +581 -337
- package/dist/conversational-agent/index.cjs +110 -285
- package/dist/conversational-agent/index.d.ts +63 -12
- package/dist/conversational-agent/index.mjs +110 -286
- package/dist/core/index.cjs +39 -289
- package/dist/core/index.d.ts +9 -98
- package/dist/core/index.mjs +40 -275
- package/dist/document-understanding/index.cjs +18 -1
- package/dist/document-understanding/index.d.ts +636 -610
- package/dist/document-understanding/index.mjs +18 -1
- package/dist/entities/index.cjs +64 -274
- package/dist/entities/index.d.ts +1 -0
- package/dist/entities/index.mjs +64 -274
- package/dist/feedback/index.cjs +313 -276
- package/dist/feedback/index.d.ts +418 -12
- package/dist/feedback/index.mjs +313 -276
- package/dist/index.cjs +777 -297
- package/dist/index.d.ts +2005 -721
- package/dist/index.mjs +777 -283
- package/dist/index.umd.js +966 -162
- package/dist/jobs/index.cjs +64 -274
- package/dist/jobs/index.d.ts +1 -0
- package/dist/jobs/index.mjs +64 -274
- package/dist/maestro-processes/index.cjs +1789 -1686
- package/dist/maestro-processes/index.d.ts +431 -2
- package/dist/maestro-processes/index.mjs +1790 -1687
- package/dist/processes/index.cjs +64 -274
- package/dist/processes/index.d.ts +1 -0
- package/dist/processes/index.mjs +64 -274
- package/dist/queues/index.cjs +64 -274
- package/dist/queues/index.d.ts +1 -0
- package/dist/queues/index.mjs +64 -274
- package/dist/tasks/index.cjs +64 -274
- package/dist/tasks/index.d.ts +1 -0
- package/dist/tasks/index.mjs +64 -274
- package/package.json +8 -10
package/dist/index.umd.js
CHANGED
|
@@ -4482,6 +4482,7 @@
|
|
|
4482
4482
|
const PIMS_BASE = 'pims_';
|
|
4483
4483
|
const DATAFABRIC_BASE = 'datafabric_';
|
|
4484
4484
|
const IDENTITY_BASE = 'identity_';
|
|
4485
|
+
const INSIGHTS_RTM_BASE = 'insightsrtm_';
|
|
4485
4486
|
|
|
4486
4487
|
/**
|
|
4487
4488
|
* Orchestrator Service Endpoints
|
|
@@ -4588,6 +4589,20 @@
|
|
|
4588
4589
|
GET_ELEMENT_EXECUTIONS: (instanceId) => `${PIMS_BASE}/api/v1/element-executions/case-instances/${instanceId}`,
|
|
4589
4590
|
REOPEN: (instanceId) => `${PIMS_BASE}/api/v1/cases/${instanceId}/reopen`,
|
|
4590
4591
|
},
|
|
4592
|
+
INSIGHTS: {
|
|
4593
|
+
/** SLA summary for case instances */
|
|
4594
|
+
SLA_SUMMARY: `${INSIGHTS_RTM_BASE}/caseManagement/slaSummary`,
|
|
4595
|
+
/** Stages summary for case instances */
|
|
4596
|
+
STAGES_SUMMARY: `${INSIGHTS_RTM_BASE}/caseManagement/stages`,
|
|
4597
|
+
/** Top processes ranked by run count */
|
|
4598
|
+
TOP_PROCESSES_BY_RUN_COUNT: `${INSIGHTS_RTM_BASE}/agenticInstanceStatus/TopProcessesByRunCount`,
|
|
4599
|
+
/** Top processes ranked by failure count */
|
|
4600
|
+
TOP_PROCESSES_WITH_FAILURE: `${INSIGHTS_RTM_BASE}/agenticInstanceStatus/TopProcesseswithFailure`,
|
|
4601
|
+
/** Instance status aggregated by date for time-series charts */
|
|
4602
|
+
INSTANCE_STATUS_BY_DATE: `${INSIGHTS_RTM_BASE}/agenticInstanceStatus/InstanceStatusByDate`,
|
|
4603
|
+
/** Top processes ranked by total duration */
|
|
4604
|
+
TOP_PROCESSES_BY_DURATION: `${INSIGHTS_RTM_BASE}/agenticInstanceStatus/TopProcessesByDuration`,
|
|
4605
|
+
},
|
|
4591
4606
|
};
|
|
4592
4607
|
|
|
4593
4608
|
/**
|
|
@@ -9216,54 +9231,56 @@
|
|
|
9216
9231
|
}
|
|
9217
9232
|
|
|
9218
9233
|
/**
|
|
9219
|
-
*
|
|
9234
|
+
* Common telemetry attribute keys + Application Insights connection string.
|
|
9235
|
+
*
|
|
9236
|
+
* Producer-specific identity (SDK version, role name, etc.) is supplied at
|
|
9237
|
+
* runtime via `TelemetryClient.initialize(...)` so the same package can be
|
|
9238
|
+
* reused by multiple packages. The Application Insights connection string is
|
|
9239
|
+
* shared across all consumers and is patched into this file at publish time.
|
|
9220
9240
|
*/
|
|
9221
9241
|
// Connection string placeholder that will be replaced during build
|
|
9222
|
-
const CONNECTION_STRING =
|
|
9223
|
-
|
|
9224
|
-
const
|
|
9225
|
-
const
|
|
9226
|
-
const
|
|
9227
|
-
const
|
|
9228
|
-
const
|
|
9229
|
-
const
|
|
9230
|
-
const
|
|
9231
|
-
|
|
9232
|
-
const
|
|
9233
|
-
const CLOUD_ROLE_NAME = "uipath-ts-sdk";
|
|
9234
|
-
// Service and logger names
|
|
9235
|
-
const SDK_SERVICE_NAME = "UiPath.TypeScript.Sdk";
|
|
9236
|
-
const SDK_LOGGER_NAME = "uipath-ts-sdk-telemetry";
|
|
9237
|
-
// Event names
|
|
9238
|
-
const SDK_RUN_EVENT = "Sdk.Run";
|
|
9239
|
-
// Default value for unknown/empty attributes
|
|
9240
|
-
const UNKNOWN$1 = "";
|
|
9242
|
+
const CONNECTION_STRING = '$CONNECTION_STRING';
|
|
9243
|
+
const VERSION = 'Version';
|
|
9244
|
+
const SERVICE = 'Service';
|
|
9245
|
+
const CLOUD_ORGANIZATION_NAME = 'CloudOrganizationName';
|
|
9246
|
+
const CLOUD_TENANT_NAME = 'CloudTenantName';
|
|
9247
|
+
const CLOUD_URL = 'CloudUrl';
|
|
9248
|
+
const CLOUD_CLIENT_ID = 'CloudClientId';
|
|
9249
|
+
const CLOUD_REDIRECT_URI = 'CloudRedirectUri';
|
|
9250
|
+
const APP_NAME = 'ApplicationName';
|
|
9251
|
+
/** Default value used when an attribute has no resolved value. */
|
|
9252
|
+
const UNKNOWN$1 = '';
|
|
9241
9253
|
|
|
9254
|
+
const INSTRUMENTATION_KEY_RE = /InstrumentationKey=([^;]+)/;
|
|
9255
|
+
const INGESTION_ENDPOINT_RE = /IngestionEndpoint=([^;]+)/;
|
|
9242
9256
|
/**
|
|
9243
|
-
*
|
|
9257
|
+
* Sends every emitted log record as an Application Insights custom event.
|
|
9258
|
+
* Plugged into OpenTelemetry's `BatchLogRecordProcessor`, which buffers and
|
|
9259
|
+
* flushes log records to this exporter on its own schedule.
|
|
9244
9260
|
*/
|
|
9245
9261
|
class ApplicationInsightsEventExporter {
|
|
9246
|
-
constructor(connectionString) {
|
|
9262
|
+
constructor(connectionString, tags) {
|
|
9247
9263
|
this.connectionString = connectionString;
|
|
9264
|
+
this.tags = tags;
|
|
9248
9265
|
}
|
|
9249
9266
|
export(logs, resultCallback) {
|
|
9250
9267
|
try {
|
|
9251
|
-
|
|
9252
|
-
this.sendAsCustomEvent(
|
|
9253
|
-
}
|
|
9268
|
+
for (const log of logs) {
|
|
9269
|
+
this.sendAsCustomEvent(log);
|
|
9270
|
+
}
|
|
9254
9271
|
resultCallback({ code: 0 });
|
|
9255
9272
|
}
|
|
9256
9273
|
catch (error) {
|
|
9257
|
-
|
|
9258
|
-
|
|
9274
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
9275
|
+
console.debug('Failed to export logs to Application Insights:', err);
|
|
9276
|
+
resultCallback({ code: 1, error: err });
|
|
9259
9277
|
}
|
|
9260
9278
|
}
|
|
9261
9279
|
shutdown() {
|
|
9262
9280
|
return Promise.resolve();
|
|
9263
9281
|
}
|
|
9264
9282
|
sendAsCustomEvent(logRecord) {
|
|
9265
|
-
|
|
9266
|
-
const eventName = logRecord.body || SDK_RUN_EVENT;
|
|
9283
|
+
const eventName = String(logRecord.body);
|
|
9267
9284
|
const payload = {
|
|
9268
9285
|
name: 'Microsoft.ApplicationInsights.Event',
|
|
9269
9286
|
time: new Date().toISOString(),
|
|
@@ -9273,25 +9290,25 @@
|
|
|
9273
9290
|
baseData: {
|
|
9274
9291
|
ver: 2,
|
|
9275
9292
|
name: eventName,
|
|
9276
|
-
properties: this.convertAttributesToProperties(logRecord.attributes
|
|
9277
|
-
}
|
|
9293
|
+
properties: this.convertAttributesToProperties(logRecord.attributes),
|
|
9294
|
+
},
|
|
9278
9295
|
},
|
|
9279
9296
|
tags: {
|
|
9280
|
-
'ai.cloud.role':
|
|
9281
|
-
'ai.cloud.roleInstance':
|
|
9282
|
-
}
|
|
9297
|
+
'ai.cloud.role': this.tags.cloudRoleName,
|
|
9298
|
+
'ai.cloud.roleInstance': this.tags.cloudRoleInstance,
|
|
9299
|
+
},
|
|
9283
9300
|
};
|
|
9284
|
-
this.sendToApplicationInsights(payload);
|
|
9301
|
+
void this.sendToApplicationInsights(payload);
|
|
9285
9302
|
}
|
|
9286
9303
|
extractInstrumentationKey() {
|
|
9287
|
-
const match = this.connectionString
|
|
9304
|
+
const match = INSTRUMENTATION_KEY_RE.exec(this.connectionString);
|
|
9288
9305
|
return match ? match[1] : '';
|
|
9289
9306
|
}
|
|
9290
9307
|
convertAttributesToProperties(attributes) {
|
|
9291
9308
|
const properties = {};
|
|
9292
|
-
Object.entries(attributes
|
|
9309
|
+
for (const [key, value] of Object.entries(attributes ?? {})) {
|
|
9293
9310
|
properties[key] = String(value);
|
|
9294
|
-
}
|
|
9311
|
+
}
|
|
9295
9312
|
return properties;
|
|
9296
9313
|
}
|
|
9297
9314
|
async sendToApplicationInsights(payload) {
|
|
@@ -9304,10 +9321,8 @@
|
|
|
9304
9321
|
const url = `${ingestionEndpoint}/v2/track`;
|
|
9305
9322
|
const response = await fetch(url, {
|
|
9306
9323
|
method: 'POST',
|
|
9307
|
-
headers: {
|
|
9308
|
-
|
|
9309
|
-
},
|
|
9310
|
-
body: JSON.stringify(payload)
|
|
9324
|
+
headers: { 'Content-Type': 'application/json' },
|
|
9325
|
+
body: JSON.stringify(payload),
|
|
9311
9326
|
});
|
|
9312
9327
|
if (!response.ok) {
|
|
9313
9328
|
console.debug(`Failed to send event telemetry: ${response.status} ${response.statusText}`);
|
|
@@ -9318,101 +9333,102 @@
|
|
|
9318
9333
|
}
|
|
9319
9334
|
}
|
|
9320
9335
|
extractIngestionEndpoint() {
|
|
9321
|
-
const match = this.connectionString
|
|
9336
|
+
const match = INGESTION_ENDPOINT_RE.exec(this.connectionString);
|
|
9322
9337
|
return match ? match[1] : '';
|
|
9323
9338
|
}
|
|
9324
9339
|
}
|
|
9325
9340
|
/**
|
|
9326
|
-
*
|
|
9341
|
+
* Telemetry client owned by a single consumer (e.g. the SDK or the Coded
|
|
9342
|
+
* Action Apps package). Each consumer instantiates its own client so that
|
|
9343
|
+
* its identity (`cloudRoleName`, `serviceName`, `sdkVersion`, …) and tenant
|
|
9344
|
+
* context flow through to its own `Logger` and exporter pipeline. Two
|
|
9345
|
+
* consumers running in the same process emit independent events — they
|
|
9346
|
+
* share the Application Insights connection string but nothing else.
|
|
9347
|
+
*
|
|
9348
|
+
* Records are emitted via `Logger.emit` and batched by
|
|
9349
|
+
* `BatchLogRecordProcessor` before being handed to the Application Insights
|
|
9350
|
+
* exporter.
|
|
9327
9351
|
*/
|
|
9328
9352
|
class TelemetryClient {
|
|
9329
9353
|
constructor() {
|
|
9330
9354
|
this.isInitialized = false;
|
|
9331
9355
|
}
|
|
9332
|
-
|
|
9333
|
-
if (!TelemetryClient.instance) {
|
|
9334
|
-
TelemetryClient.instance = new TelemetryClient();
|
|
9335
|
-
}
|
|
9336
|
-
return TelemetryClient.instance;
|
|
9337
|
-
}
|
|
9338
|
-
/**
|
|
9339
|
-
* Initialize telemetry
|
|
9340
|
-
*/
|
|
9341
|
-
initialize(config) {
|
|
9356
|
+
initialize(options) {
|
|
9342
9357
|
if (this.isInitialized) {
|
|
9358
|
+
console.debug('Telemetry client has already been initialized');
|
|
9343
9359
|
return;
|
|
9344
9360
|
}
|
|
9345
9361
|
this.isInitialized = true;
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
}
|
|
9362
|
+
this.options = options;
|
|
9363
|
+
this.telemetryContext = options.context;
|
|
9349
9364
|
try {
|
|
9350
|
-
|
|
9351
|
-
if (!connectionString) {
|
|
9365
|
+
if (!this.isValidConnectionString(CONNECTION_STRING)) {
|
|
9352
9366
|
return;
|
|
9353
9367
|
}
|
|
9354
|
-
this.setupTelemetryProvider(
|
|
9368
|
+
this.setupTelemetryProvider(CONNECTION_STRING);
|
|
9355
9369
|
}
|
|
9356
9370
|
catch (error) {
|
|
9357
|
-
|
|
9358
|
-
console.debug('Failed to initialize OpenTelemetry:', error);
|
|
9371
|
+
console.debug('Failed to initialize telemetry:', error);
|
|
9359
9372
|
}
|
|
9360
9373
|
}
|
|
9361
|
-
getConnectionString() {
|
|
9362
|
-
const connectionString = CONNECTION_STRING;
|
|
9363
|
-
return connectionString;
|
|
9364
|
-
}
|
|
9365
|
-
setupTelemetryProvider(connectionString) {
|
|
9366
|
-
const exporter = new ApplicationInsightsEventExporter(connectionString);
|
|
9367
|
-
const processor = new BatchLogRecordProcessor(exporter);
|
|
9368
|
-
this.logProvider = new LoggerProvider({
|
|
9369
|
-
processors: [processor]
|
|
9370
|
-
});
|
|
9371
|
-
this.logger = this.logProvider.getLogger(SDK_LOGGER_NAME);
|
|
9372
|
-
}
|
|
9373
|
-
/**
|
|
9374
|
-
* Track a telemetry event
|
|
9375
|
-
*/
|
|
9376
9374
|
track(eventName, name, extraAttributes = {}) {
|
|
9377
9375
|
try {
|
|
9378
|
-
// Skip if logger not initialized
|
|
9379
9376
|
if (!this.logger) {
|
|
9380
9377
|
return;
|
|
9381
9378
|
}
|
|
9382
|
-
const finalDisplayName = name
|
|
9379
|
+
const finalDisplayName = name ?? eventName;
|
|
9383
9380
|
const attributes = this.getEnrichedAttributes(extraAttributes, eventName);
|
|
9384
|
-
// Emit as log
|
|
9385
9381
|
this.logger.emit({
|
|
9386
9382
|
body: finalDisplayName,
|
|
9387
|
-
attributes
|
|
9383
|
+
attributes,
|
|
9388
9384
|
timestamp: Date.now(),
|
|
9389
9385
|
});
|
|
9390
9386
|
}
|
|
9391
9387
|
catch (error) {
|
|
9392
|
-
// Silent failure
|
|
9393
9388
|
console.debug('Failed to track telemetry event:', error);
|
|
9394
9389
|
}
|
|
9395
9390
|
}
|
|
9396
9391
|
/**
|
|
9397
|
-
*
|
|
9392
|
+
* Default event name (e.g. `Sdk.Run`) used when a tracker fires without
|
|
9393
|
+
* an explicit display name. Returns `undefined` until `initialize` runs.
|
|
9398
9394
|
*/
|
|
9395
|
+
getDefaultEventName() {
|
|
9396
|
+
return this.options?.defaultEventName;
|
|
9397
|
+
}
|
|
9398
|
+
setupTelemetryProvider(connectionString) {
|
|
9399
|
+
// `setupTelemetryProvider` is only called from `initialize` after
|
|
9400
|
+
// `this.options` has been assigned, so the non-null assertion is safe.
|
|
9401
|
+
const opts = this.options;
|
|
9402
|
+
const exporter = new ApplicationInsightsEventExporter(connectionString, {
|
|
9403
|
+
cloudRoleName: opts.cloudRoleName,
|
|
9404
|
+
cloudRoleInstance: opts.sdkVersion,
|
|
9405
|
+
});
|
|
9406
|
+
const processor = new BatchLogRecordProcessor(exporter);
|
|
9407
|
+
this.logProvider = new LoggerProvider({
|
|
9408
|
+
processors: [processor],
|
|
9409
|
+
});
|
|
9410
|
+
this.logger = this.logProvider.getLogger(opts.loggerName);
|
|
9411
|
+
}
|
|
9412
|
+
isValidConnectionString(connectionString) {
|
|
9413
|
+
// Build placeholders are emitted as `$CONNECTION_STRING` literally
|
|
9414
|
+
// until the publish workflow patches them. Treat any unsubstituted
|
|
9415
|
+
// placeholder as "no connection string available".
|
|
9416
|
+
return Boolean(connectionString) && !connectionString.startsWith('$');
|
|
9417
|
+
}
|
|
9399
9418
|
getEnrichedAttributes(extraAttributes, eventName) {
|
|
9400
|
-
const
|
|
9401
|
-
|
|
9402
|
-
[
|
|
9419
|
+
const opts = this.options;
|
|
9420
|
+
return {
|
|
9421
|
+
[APP_NAME]: opts?.serviceName ?? UNKNOWN$1,
|
|
9422
|
+
[VERSION]: opts?.sdkVersion ?? UNKNOWN$1,
|
|
9403
9423
|
[SERVICE]: eventName,
|
|
9404
9424
|
[CLOUD_URL]: this.createCloudUrl(),
|
|
9405
|
-
[CLOUD_ORGANIZATION_NAME]: this.telemetryContext?.orgName
|
|
9406
|
-
[CLOUD_TENANT_NAME]: this.telemetryContext?.tenantName
|
|
9407
|
-
[CLOUD_REDIRECT_URI]: this.telemetryContext?.redirectUri
|
|
9408
|
-
[CLOUD_CLIENT_ID]: this.telemetryContext?.clientId
|
|
9425
|
+
[CLOUD_ORGANIZATION_NAME]: this.telemetryContext?.orgName ?? UNKNOWN$1,
|
|
9426
|
+
[CLOUD_TENANT_NAME]: this.telemetryContext?.tenantName ?? UNKNOWN$1,
|
|
9427
|
+
[CLOUD_REDIRECT_URI]: this.telemetryContext?.redirectUri ?? UNKNOWN$1,
|
|
9428
|
+
[CLOUD_CLIENT_ID]: this.telemetryContext?.clientId ?? UNKNOWN$1,
|
|
9409
9429
|
...extraAttributes,
|
|
9410
9430
|
};
|
|
9411
|
-
return attributes;
|
|
9412
9431
|
}
|
|
9413
|
-
/**
|
|
9414
|
-
* Create cloud URL from base URL, organization ID, and tenant ID
|
|
9415
|
-
*/
|
|
9416
9432
|
createCloudUrl() {
|
|
9417
9433
|
const baseUrl = this.telemetryContext?.baseUrl;
|
|
9418
9434
|
const orgId = this.telemetryContext?.orgName;
|
|
@@ -9423,78 +9439,166 @@
|
|
|
9423
9439
|
return `${baseUrl}/${orgId}/${tenantId}`;
|
|
9424
9440
|
}
|
|
9425
9441
|
}
|
|
9426
|
-
// Export singleton instance
|
|
9427
|
-
const telemetryClient = TelemetryClient.getInstance();
|
|
9428
9442
|
|
|
9429
9443
|
/**
|
|
9430
|
-
*
|
|
9444
|
+
* Each consumer ships as multiple subpath bundles and Rollup inlines this
|
|
9445
|
+
* shim into every one — `new TelemetryClient()` would hand each bundle its
|
|
9446
|
+
* own (uninitialized) client. `getOrCreateClient(name)` instead parks the
|
|
9447
|
+
* client on `globalThis` so every bundle shares one client per name.
|
|
9431
9448
|
*/
|
|
9449
|
+
const REGISTRY_KEY$1 = Symbol.for('@uipath/core-telemetry/clients');
|
|
9450
|
+
function getGlobalRegistry() {
|
|
9451
|
+
const holder = globalThis;
|
|
9452
|
+
let registry = holder[REGISTRY_KEY$1];
|
|
9453
|
+
if (!registry) {
|
|
9454
|
+
registry = {};
|
|
9455
|
+
holder[REGISTRY_KEY$1] = registry;
|
|
9456
|
+
}
|
|
9457
|
+
return registry;
|
|
9458
|
+
}
|
|
9459
|
+
/**
|
|
9460
|
+
* Returns the named `TelemetryClient`, creating it on first access.
|
|
9461
|
+
*
|
|
9462
|
+
* @param name Stable identifier for the consumer (e.g. `"uipath-ts-sdk"`,
|
|
9463
|
+
* `"uipath-ts-coded-action-apps"`). Subpath bundles within the same
|
|
9464
|
+
* consumer share a client by passing the same name.
|
|
9465
|
+
*/
|
|
9466
|
+
function getOrCreateClient(name) {
|
|
9467
|
+
const registry = getGlobalRegistry();
|
|
9468
|
+
if (!registry[name]) {
|
|
9469
|
+
registry[name] = new TelemetryClient();
|
|
9470
|
+
}
|
|
9471
|
+
return registry[name];
|
|
9472
|
+
}
|
|
9473
|
+
|
|
9432
9474
|
/**
|
|
9433
|
-
*
|
|
9475
|
+
* `@track` decorator and `trackEvent` function factories.
|
|
9434
9476
|
*/
|
|
9435
|
-
function createTrackedFunction(originalFunction, nameOrOptions, fallbackName, opts) {
|
|
9436
|
-
|
|
9437
|
-
// Determine if we should track this call
|
|
9477
|
+
function createTrackedFunction(originalFunction, { client, nameOrOptions, fallbackName, opts }) {
|
|
9478
|
+
const wrapped = function (...args) {
|
|
9438
9479
|
let shouldTrack = true;
|
|
9439
9480
|
if (opts.condition !== undefined) {
|
|
9440
|
-
|
|
9441
|
-
|
|
9442
|
-
|
|
9443
|
-
|
|
9444
|
-
shouldTrack = opts.condition;
|
|
9445
|
-
}
|
|
9481
|
+
shouldTrack =
|
|
9482
|
+
typeof opts.condition === 'function'
|
|
9483
|
+
? opts.condition.apply(this, args)
|
|
9484
|
+
: opts.condition;
|
|
9446
9485
|
}
|
|
9447
|
-
// Track the event if enabled
|
|
9448
9486
|
if (shouldTrack) {
|
|
9449
|
-
|
|
9450
|
-
|
|
9451
|
-
|
|
9452
|
-
: fallbackName;
|
|
9453
|
-
// Use 'Sdk.Run' as the name and serviceMethod as the service
|
|
9454
|
-
telemetryClient.track(serviceMethod, SDK_RUN_EVENT, opts.attributes);
|
|
9455
|
-
}
|
|
9456
|
-
// Execute the original function
|
|
9487
|
+
const serviceMethod = typeof nameOrOptions === 'string' ? nameOrOptions : fallbackName;
|
|
9488
|
+
client.track(serviceMethod, client.getDefaultEventName(), opts.attributes);
|
|
9489
|
+
}
|
|
9457
9490
|
return originalFunction.apply(this, args);
|
|
9458
9491
|
};
|
|
9492
|
+
return wrapped;
|
|
9459
9493
|
}
|
|
9460
9494
|
/**
|
|
9461
|
-
*
|
|
9495
|
+
* Factory: returns a `track` decorator bound to a specific
|
|
9496
|
+
* `TelemetryClient`. Each consumer creates its own decorator from its own
|
|
9497
|
+
* client so events carry that consumer's identity.
|
|
9462
9498
|
*
|
|
9463
|
-
*
|
|
9464
|
-
*
|
|
9465
|
-
*
|
|
9499
|
+
* @example
|
|
9500
|
+
* ```ts
|
|
9501
|
+
* const sdkClient = new TelemetryClient();
|
|
9502
|
+
* sdkClient.initialize({ ... });
|
|
9503
|
+
* export const track = createTrack(sdkClient);
|
|
9466
9504
|
*
|
|
9467
|
-
*
|
|
9505
|
+
* // Consumer code
|
|
9506
|
+
* @track('Queue.GetAll')
|
|
9468
9507
|
* async getAll() { ... }
|
|
9469
9508
|
*
|
|
9470
|
-
* @track(
|
|
9471
|
-
* async
|
|
9472
|
-
*
|
|
9473
|
-
* @track("Assets.Update", { condition: false })
|
|
9474
|
-
* function myFunction() { ... }
|
|
9475
|
-
*
|
|
9476
|
-
* @track("Processes.Start", { attributes: { customProp: "value" } })
|
|
9477
|
-
* function myFunction() { ... }
|
|
9509
|
+
* @track('Assets.Update', { condition: false })
|
|
9510
|
+
* async update() { ... }
|
|
9511
|
+
* ```
|
|
9478
9512
|
*/
|
|
9479
|
-
function
|
|
9480
|
-
|
|
9481
|
-
const opts = typeof nameOrOptions === 'object' ? nameOrOptions : options
|
|
9482
|
-
|
|
9483
|
-
|
|
9484
|
-
|
|
9485
|
-
|
|
9513
|
+
function createTrack(client) {
|
|
9514
|
+
function trackFactory(nameOrOptions, options) {
|
|
9515
|
+
const opts = typeof nameOrOptions === 'object' ? nameOrOptions : options ?? {};
|
|
9516
|
+
function decoratorImpl(target, propertyKey, descriptor) {
|
|
9517
|
+
if (descriptor && typeof descriptor.value === 'function') {
|
|
9518
|
+
const original = descriptor.value;
|
|
9519
|
+
descriptor.value = createTrackedFunction(original, {
|
|
9520
|
+
client,
|
|
9521
|
+
nameOrOptions,
|
|
9522
|
+
fallbackName: typeof propertyKey === 'string'
|
|
9523
|
+
? propertyKey
|
|
9524
|
+
: 'unknown_method',
|
|
9525
|
+
opts,
|
|
9526
|
+
});
|
|
9527
|
+
return descriptor;
|
|
9528
|
+
}
|
|
9529
|
+
const fn = target;
|
|
9530
|
+
return createTrackedFunction(fn, {
|
|
9531
|
+
client,
|
|
9532
|
+
nameOrOptions,
|
|
9533
|
+
fallbackName: fn.name || 'unknown_function',
|
|
9534
|
+
opts,
|
|
9535
|
+
});
|
|
9486
9536
|
}
|
|
9487
|
-
|
|
9488
|
-
|
|
9489
|
-
|
|
9537
|
+
return decoratorImpl;
|
|
9538
|
+
}
|
|
9539
|
+
return trackFactory;
|
|
9490
9540
|
}
|
|
9491
9541
|
/**
|
|
9492
|
-
*
|
|
9542
|
+
* Factory: returns a `trackEvent` function bound to a specific
|
|
9543
|
+
* `TelemetryClient`. Use for ad-hoc tracking outside method boundaries.
|
|
9544
|
+
*
|
|
9545
|
+
* @example
|
|
9546
|
+
* ```ts
|
|
9547
|
+
* const trackEvent = createTrackEvent(sdkClient);
|
|
9548
|
+
* trackEvent('Sdk.Auth');
|
|
9549
|
+
* ```
|
|
9493
9550
|
*/
|
|
9494
|
-
function
|
|
9495
|
-
|
|
9551
|
+
function createTrackEvent(client) {
|
|
9552
|
+
return function trackEvent(eventName, name, attributes) {
|
|
9553
|
+
client.track(eventName, name, attributes);
|
|
9554
|
+
};
|
|
9496
9555
|
}
|
|
9497
9556
|
|
|
9557
|
+
/**
|
|
9558
|
+
* SDK Telemetry constants.
|
|
9559
|
+
*
|
|
9560
|
+
* Only the SDK's identity (version, service name, role name, …) lives
|
|
9561
|
+
* here. The Application Insights connection string is injected into
|
|
9562
|
+
* `@uipath/core-telemetry` itself at publish time, and the generic attribute
|
|
9563
|
+
* keys (`Version`, `Service`, `CloudOrganizationName`, …) are owned by
|
|
9564
|
+
* `@uipath/core-telemetry` and consumed there — they are not part of the
|
|
9565
|
+
* SDK's public API.
|
|
9566
|
+
*/
|
|
9567
|
+
/** SDK version placeholder — patched by the SDK publish workflow. */
|
|
9568
|
+
const SDK_VERSION = '1.3.9';
|
|
9569
|
+
const CLOUD_ROLE_NAME = 'uipath-ts-sdk';
|
|
9570
|
+
const SDK_SERVICE_NAME = 'UiPath.TypeScript.Sdk';
|
|
9571
|
+
const SDK_LOGGER_NAME = 'uipath-ts-sdk-telemetry';
|
|
9572
|
+
const SDK_RUN_EVENT = 'Sdk.Run';
|
|
9573
|
+
|
|
9574
|
+
/**
|
|
9575
|
+
* UiPath TypeScript SDK Telemetry
|
|
9576
|
+
*
|
|
9577
|
+
* Constructs the SDK's own `TelemetryClient` and binds the SDK-local
|
|
9578
|
+
* `track` / `trackEvent` to it. Each consumer of `@uipath/core-telemetry`
|
|
9579
|
+
* does this independently, so events carry their own consumer's identity
|
|
9580
|
+
* and tenant context.
|
|
9581
|
+
*/
|
|
9582
|
+
// Keyed by `CLOUD_ROLE_NAME` so every SDK subpath bundle resolves to the
|
|
9583
|
+
// same `TelemetryClient` instance at runtime. A single `initialize(...)`
|
|
9584
|
+
// from the `UiPath` constructor therefore wires up `@track` decorators
|
|
9585
|
+
// across every subpath bundle (`assets`, `feedback`, `tasks`, …).
|
|
9586
|
+
const sdkClient = getOrCreateClient(CLOUD_ROLE_NAME);
|
|
9587
|
+
const track = createTrack(sdkClient);
|
|
9588
|
+
const trackEvent = createTrackEvent(sdkClient);
|
|
9589
|
+
const telemetryClient = {
|
|
9590
|
+
initialize(context) {
|
|
9591
|
+
sdkClient.initialize({
|
|
9592
|
+
sdkVersion: SDK_VERSION,
|
|
9593
|
+
serviceName: SDK_SERVICE_NAME,
|
|
9594
|
+
cloudRoleName: CLOUD_ROLE_NAME,
|
|
9595
|
+
loggerName: SDK_LOGGER_NAME,
|
|
9596
|
+
defaultEventName: SDK_RUN_EVENT,
|
|
9597
|
+
context,
|
|
9598
|
+
});
|
|
9599
|
+
},
|
|
9600
|
+
};
|
|
9601
|
+
|
|
9498
9602
|
/**
|
|
9499
9603
|
* SDK Internals Registry - Internal registry for SDK instances
|
|
9500
9604
|
*
|
|
@@ -10227,6 +10331,27 @@
|
|
|
10227
10331
|
/**
|
|
10228
10332
|
* Collection of utility functions for working with objects
|
|
10229
10333
|
*/
|
|
10334
|
+
/**
|
|
10335
|
+
* Resolves a field value from an object, supporting both direct keys (e.g., '@odata.count')
|
|
10336
|
+
* and dot-separated nested paths (e.g., 'pagination.totalCount').
|
|
10337
|
+
* Direct key match takes priority over nested traversal.
|
|
10338
|
+
*/
|
|
10339
|
+
function resolveNestedField(data, fieldPath) {
|
|
10340
|
+
if (!data) {
|
|
10341
|
+
return undefined;
|
|
10342
|
+
}
|
|
10343
|
+
if (fieldPath in data) {
|
|
10344
|
+
return data[fieldPath];
|
|
10345
|
+
}
|
|
10346
|
+
if (!fieldPath.includes('.')) {
|
|
10347
|
+
return undefined;
|
|
10348
|
+
}
|
|
10349
|
+
let value = data;
|
|
10350
|
+
for (const part of fieldPath.split('.')) {
|
|
10351
|
+
value = value?.[part];
|
|
10352
|
+
}
|
|
10353
|
+
return value;
|
|
10354
|
+
}
|
|
10230
10355
|
/**
|
|
10231
10356
|
* Filters out undefined values from an object
|
|
10232
10357
|
* @param obj The source object
|
|
@@ -10486,6 +10611,26 @@
|
|
|
10486
10611
|
/** Field name for continuation token in bucket file metadata response */
|
|
10487
10612
|
CONTINUATION_TOKEN_FIELD: 'continuationToken'
|
|
10488
10613
|
};
|
|
10614
|
+
/**
|
|
10615
|
+
* SLA Summary pagination constants for page-number-based pagination
|
|
10616
|
+
*/
|
|
10617
|
+
const SLA_SUMMARY_PAGINATION = {
|
|
10618
|
+
/** Field name for items in SLA summary response */
|
|
10619
|
+
ITEMS_FIELD: 'data',
|
|
10620
|
+
/** Dot-notation path for total count in nested pagination object */
|
|
10621
|
+
TOTAL_COUNT_FIELD: 'pagination.totalCount'
|
|
10622
|
+
};
|
|
10623
|
+
/**
|
|
10624
|
+
* SLA Summary OFFSET pagination parameter names (page-number style, no skip conversion)
|
|
10625
|
+
*/
|
|
10626
|
+
const SLA_SUMMARY_OFFSET_PARAMS = {
|
|
10627
|
+
/** Page size parameter name */
|
|
10628
|
+
PAGE_SIZE_PARAM: 'PageSize',
|
|
10629
|
+
/** Page number parameter name (sent directly, not converted to skip) */
|
|
10630
|
+
OFFSET_PARAM: 'PageNumber',
|
|
10631
|
+
/** No count param needed */
|
|
10632
|
+
COUNT_PARAM: undefined
|
|
10633
|
+
};
|
|
10489
10634
|
/**
|
|
10490
10635
|
* Process Instance pagination constants for token-based pagination
|
|
10491
10636
|
*/
|
|
@@ -10536,6 +10681,14 @@
|
|
|
10536
10681
|
TOKEN_PARAM: 'nextPage'
|
|
10537
10682
|
};
|
|
10538
10683
|
|
|
10684
|
+
/**
|
|
10685
|
+
* Converts a UTC timestamp string (e.g., "5/8/2026 11:20:17 AM") to ISO 8601 UTC format.
|
|
10686
|
+
* Returns the original value if parsing fails.
|
|
10687
|
+
*/
|
|
10688
|
+
function toISOUtc(value) {
|
|
10689
|
+
const date = new Date(value + ' UTC');
|
|
10690
|
+
return isNaN(date.getTime()) ? value : date.toISOString();
|
|
10691
|
+
}
|
|
10539
10692
|
/**
|
|
10540
10693
|
* Transforms data by mapping fields according to the provided field mapping
|
|
10541
10694
|
* @param data The source data to transform
|
|
@@ -11092,7 +11245,8 @@
|
|
|
11092
11245
|
// Extract and transform items from response
|
|
11093
11246
|
// Handle both plain array responses and envelope responses ({ value: [...], totalRecordCount: N })
|
|
11094
11247
|
const rawItems = Array.isArray(response.data) ? response.data : response.data?.[itemsField];
|
|
11095
|
-
const
|
|
11248
|
+
const rawTotalCount = Array.isArray(response.data) ? undefined : resolveNestedField(response.data, totalCountField);
|
|
11249
|
+
const totalCount = typeof rawTotalCount === 'number' ? rawTotalCount : undefined;
|
|
11096
11250
|
// Parse items - automatically handle JSON string responses
|
|
11097
11251
|
const parsedItems = typeof rawItems === 'string' ? JSON.parse(rawItems) : (rawItems || []);
|
|
11098
11252
|
const items = transformFn ? parsedItems.map(transformFn) : parsedItems;
|
|
@@ -11334,9 +11488,17 @@
|
|
|
11334
11488
|
const pageSizeParam = paginationParams?.pageSizeParam || ODATA_OFFSET_PARAMS.PAGE_SIZE_PARAM;
|
|
11335
11489
|
const offsetParam = paginationParams?.offsetParam || ODATA_OFFSET_PARAMS.OFFSET_PARAM;
|
|
11336
11490
|
const countParam = paginationParams?.countParam || ODATA_OFFSET_PARAMS.COUNT_PARAM;
|
|
11491
|
+
// When true (default), converts pageNumber to a skip/offset value (e.g., page 3 with pageSize 10 → skip 20).
|
|
11492
|
+
// When false, passes pageNumber directly as the offset param — used by APIs that accept a page number instead of a record offset.
|
|
11493
|
+
const convertToSkip = paginationParams?.convertToSkip ?? true;
|
|
11337
11494
|
requestParams[pageSizeParam] = limitedPageSize;
|
|
11338
|
-
if (
|
|
11339
|
-
|
|
11495
|
+
if (convertToSkip) {
|
|
11496
|
+
if (params.pageNumber && params.pageNumber > 1) {
|
|
11497
|
+
requestParams[offsetParam] = (params.pageNumber - 1) * limitedPageSize;
|
|
11498
|
+
}
|
|
11499
|
+
}
|
|
11500
|
+
else {
|
|
11501
|
+
requestParams[offsetParam] = params.pageNumber || 1;
|
|
11340
11502
|
}
|
|
11341
11503
|
{
|
|
11342
11504
|
requestParams[countParam] = true;
|
|
@@ -11367,7 +11529,8 @@
|
|
|
11367
11529
|
// Extract items and metadata
|
|
11368
11530
|
// Handle both plain array responses and envelope responses ({ value: [...], totalRecordCount: N })
|
|
11369
11531
|
const items = Array.isArray(response.data) ? response.data : (response.data[itemsField] || []);
|
|
11370
|
-
const
|
|
11532
|
+
const rawTotalCount = Array.isArray(response.data) ? undefined : resolveNestedField(response.data, totalCountField);
|
|
11533
|
+
const totalCount = typeof rawTotalCount === 'number' ? rawTotalCount : undefined;
|
|
11371
11534
|
const continuationToken = response.data[continuationTokenField];
|
|
11372
11535
|
// Determine if there are more pages
|
|
11373
11536
|
const hasMore = this.determineHasMorePages(paginationType, {
|
|
@@ -13021,6 +13184,53 @@
|
|
|
13021
13184
|
return Object.assign({}, processData, methods);
|
|
13022
13185
|
}
|
|
13023
13186
|
|
|
13187
|
+
/**
|
|
13188
|
+
* Builds the request body for Insights RTM "top" endpoints.
|
|
13189
|
+
*
|
|
13190
|
+
* @param startTime - Start of the time range to query
|
|
13191
|
+
* @param endTime - End of the time range to query
|
|
13192
|
+
* @param isCaseManagement - Whether to filter for case management processes
|
|
13193
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
13194
|
+
* @returns Request body for the Insights RTM endpoint
|
|
13195
|
+
* @internal
|
|
13196
|
+
*/
|
|
13197
|
+
function buildInsightsTopBody(startTime, endTime, isCaseManagement, options) {
|
|
13198
|
+
return {
|
|
13199
|
+
commonParams: {
|
|
13200
|
+
startTime: startTime.getTime(),
|
|
13201
|
+
endTime: endTime.getTime(),
|
|
13202
|
+
isCaseManagement,
|
|
13203
|
+
...(options?.packageId ? { packageId: options.packageId } : {}),
|
|
13204
|
+
...(options?.processKey ? { processKey: options.processKey } : {}),
|
|
13205
|
+
...(options?.version ? { version: options.version } : {}),
|
|
13206
|
+
}
|
|
13207
|
+
};
|
|
13208
|
+
}
|
|
13209
|
+
/**
|
|
13210
|
+
* Fetches instance status timeline from the Insights API.
|
|
13211
|
+
* Shared implementation used by both MaestroProcessesService and CasesService.
|
|
13212
|
+
*
|
|
13213
|
+
* @param postFn - Bound post method from a BaseService subclass
|
|
13214
|
+
* @param startTime - Start of the time range to query
|
|
13215
|
+
* @param endTime - End of the time range to query
|
|
13216
|
+
* @param isCaseManagement - Whether to filter for case management processes
|
|
13217
|
+
* @param options - Optional settings for time bucketing granularity
|
|
13218
|
+
* @returns Promise resolving to an array of instance status timeline entries
|
|
13219
|
+
* @internal
|
|
13220
|
+
*/
|
|
13221
|
+
async function fetchInstanceStatusTimeline(postFn, startTime, endTime, isCaseManagement, options) {
|
|
13222
|
+
const response = await postFn(MAESTRO_ENDPOINTS.INSIGHTS.INSTANCE_STATUS_BY_DATE, {
|
|
13223
|
+
commonParams: {
|
|
13224
|
+
startTime: startTime.getTime(),
|
|
13225
|
+
endTime: endTime.getTime(),
|
|
13226
|
+
isCaseManagement,
|
|
13227
|
+
},
|
|
13228
|
+
timeSliceUnit: options?.groupBy,
|
|
13229
|
+
timezoneOffset: new Date().getTimezoneOffset() * -1,
|
|
13230
|
+
});
|
|
13231
|
+
return response.data ?? [];
|
|
13232
|
+
}
|
|
13233
|
+
|
|
13024
13234
|
/**
|
|
13025
13235
|
* Maps fields for Incident entities
|
|
13026
13236
|
*/
|
|
@@ -13254,6 +13464,41 @@
|
|
|
13254
13464
|
* Case Instance Types
|
|
13255
13465
|
* Types and interfaces for Maestro case instance management
|
|
13256
13466
|
*/
|
|
13467
|
+
/**
|
|
13468
|
+
* SLA status for a case instance
|
|
13469
|
+
*/
|
|
13470
|
+
exports.SlaSummaryStatus = void 0;
|
|
13471
|
+
(function (SlaSummaryStatus) {
|
|
13472
|
+
/** Case is within SLA deadline */
|
|
13473
|
+
SlaSummaryStatus["ON_TRACK"] = "On Track";
|
|
13474
|
+
/** Case is approaching SLA deadline based on at-risk percentage threshold */
|
|
13475
|
+
SlaSummaryStatus["AT_RISK"] = "At Risk";
|
|
13476
|
+
/** Case has exceeded SLA deadline */
|
|
13477
|
+
SlaSummaryStatus["OVERDUE"] = "Overdue";
|
|
13478
|
+
/** Case instance has completed */
|
|
13479
|
+
SlaSummaryStatus["COMPLETED"] = "Completed";
|
|
13480
|
+
/** SLA status cannot be determined (no SLA deadline defined) */
|
|
13481
|
+
SlaSummaryStatus["UNKNOWN"] = "Unknown";
|
|
13482
|
+
})(exports.SlaSummaryStatus || (exports.SlaSummaryStatus = {}));
|
|
13483
|
+
/**
|
|
13484
|
+
* Instance status values for case instances and process instances
|
|
13485
|
+
*/
|
|
13486
|
+
exports.InstanceStatus = void 0;
|
|
13487
|
+
(function (InstanceStatus) {
|
|
13488
|
+
/** Instance status not yet populated by the backend */
|
|
13489
|
+
InstanceStatus["UNKNOWN"] = "";
|
|
13490
|
+
InstanceStatus["CANCELLED"] = "Cancelled";
|
|
13491
|
+
InstanceStatus["CANCELING"] = "Canceling";
|
|
13492
|
+
InstanceStatus["COMPLETED"] = "Completed";
|
|
13493
|
+
InstanceStatus["FAULTED"] = "Faulted";
|
|
13494
|
+
InstanceStatus["PAUSED"] = "Paused";
|
|
13495
|
+
InstanceStatus["PAUSING"] = "Pausing";
|
|
13496
|
+
InstanceStatus["PENDING"] = "Pending";
|
|
13497
|
+
InstanceStatus["RESUMING"] = "Resuming";
|
|
13498
|
+
InstanceStatus["RETRYING"] = "Retrying";
|
|
13499
|
+
InstanceStatus["RUNNING"] = "Running";
|
|
13500
|
+
InstanceStatus["UPGRADING"] = "Upgrading";
|
|
13501
|
+
})(exports.InstanceStatus || (exports.InstanceStatus = {}));
|
|
13257
13502
|
/**
|
|
13258
13503
|
* Case stage task type
|
|
13259
13504
|
*/
|
|
@@ -13288,6 +13533,8 @@
|
|
|
13288
13533
|
(function (EscalationTriggerType) {
|
|
13289
13534
|
EscalationTriggerType["SLA_BREACHED"] = "sla-breached";
|
|
13290
13535
|
EscalationTriggerType["AT_RISK"] = "at-risk";
|
|
13536
|
+
/** Default value when no escalation rule is defined */
|
|
13537
|
+
EscalationTriggerType["NONE"] = "None";
|
|
13291
13538
|
})(exports.EscalationTriggerType || (exports.EscalationTriggerType = {}));
|
|
13292
13539
|
/**
|
|
13293
13540
|
* SLA duration unit
|
|
@@ -13355,6 +13602,16 @@
|
|
|
13355
13602
|
if (!instanceData.instanceId)
|
|
13356
13603
|
throw new Error('Case instance ID is undefined');
|
|
13357
13604
|
return service.getActionTasks(instanceData.instanceId, options);
|
|
13605
|
+
},
|
|
13606
|
+
async getSlaSummary(options) {
|
|
13607
|
+
if (!instanceData.instanceId)
|
|
13608
|
+
throw new Error('Case instance ID is undefined');
|
|
13609
|
+
return service.getSlaSummary({ ...options, caseInstanceId: instanceData.instanceId });
|
|
13610
|
+
},
|
|
13611
|
+
async getStagesSlaSummary() {
|
|
13612
|
+
if (!instanceData.instanceId)
|
|
13613
|
+
throw new Error('Case instance ID is undefined');
|
|
13614
|
+
return service.getStagesSlaSummary({ caseInstanceId: instanceData.instanceId });
|
|
13358
13615
|
}
|
|
13359
13616
|
};
|
|
13360
13617
|
}
|
|
@@ -13370,6 +13627,40 @@
|
|
|
13370
13627
|
return Object.assign({}, instanceData, methods);
|
|
13371
13628
|
}
|
|
13372
13629
|
|
|
13630
|
+
/**
|
|
13631
|
+
* Insights Types
|
|
13632
|
+
* Shared types for Maestro insights analytics endpoints
|
|
13633
|
+
*/
|
|
13634
|
+
/**
|
|
13635
|
+
* Time bucketing granularity for insights time-series queries.
|
|
13636
|
+
*
|
|
13637
|
+
* Controls how data points are grouped on the time axis.
|
|
13638
|
+
*/
|
|
13639
|
+
exports.TimeInterval = void 0;
|
|
13640
|
+
(function (TimeInterval) {
|
|
13641
|
+
/** Group data points by hour */
|
|
13642
|
+
TimeInterval["Hour"] = "HOUR";
|
|
13643
|
+
/** Group data points by day */
|
|
13644
|
+
TimeInterval["Day"] = "DAY";
|
|
13645
|
+
/** Group data points by week */
|
|
13646
|
+
TimeInterval["Week"] = "WEEK";
|
|
13647
|
+
})(exports.TimeInterval || (exports.TimeInterval = {}));
|
|
13648
|
+
/**
|
|
13649
|
+
* Final instance statuses returned by the instance status timeline endpoint.
|
|
13650
|
+
*
|
|
13651
|
+
* Only includes statuses where the instance has finished execution — Completed, Faulted, or Cancelled.
|
|
13652
|
+
* Active statuses like Running or Paused are not included.
|
|
13653
|
+
*/
|
|
13654
|
+
exports.InstanceFinalStatus = void 0;
|
|
13655
|
+
(function (InstanceFinalStatus) {
|
|
13656
|
+
/** Instance completed successfully */
|
|
13657
|
+
InstanceFinalStatus["Completed"] = "Completed";
|
|
13658
|
+
/** Instance encountered an error */
|
|
13659
|
+
InstanceFinalStatus["Faulted"] = "Faulted";
|
|
13660
|
+
/** Instance was cancelled */
|
|
13661
|
+
InstanceFinalStatus["Cancelled"] = "Cancelled";
|
|
13662
|
+
})(exports.InstanceFinalStatus || (exports.InstanceFinalStatus = {}));
|
|
13663
|
+
|
|
13373
13664
|
/**
|
|
13374
13665
|
* Maps fields for Process Instance entities to ensure consistent naming
|
|
13375
13666
|
*/
|
|
@@ -13745,6 +14036,177 @@
|
|
|
13745
14036
|
// Fetch BPMN XML and add element name/type to each incident
|
|
13746
14037
|
return BpmnHelpers.enrichIncidentsWithBpmnData(rawResponse.data || [], folderKey, this.processInstancesService);
|
|
13747
14038
|
}
|
|
14039
|
+
/**
|
|
14040
|
+
* Get the top 5 processes ranked by run count within a time range.
|
|
14041
|
+
*
|
|
14042
|
+
* Returns an array of up to 5 processes sorted by how many times they were executed,
|
|
14043
|
+
* useful for identifying the most active processes in a given period.
|
|
14044
|
+
*
|
|
14045
|
+
* @param startTime - Start of the time range to query
|
|
14046
|
+
* @param endTime - End of the time range to query
|
|
14047
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14048
|
+
* @returns Promise resolving to an array of {@link ProcessGetTopRunCountResponse}
|
|
14049
|
+
* @example
|
|
14050
|
+
* ```typescript
|
|
14051
|
+
* import { MaestroProcesses } from '@uipath/uipath-typescript/maestro-processes';
|
|
14052
|
+
*
|
|
14053
|
+
* const maestroProcesses = new MaestroProcesses(sdk);
|
|
14054
|
+
*
|
|
14055
|
+
* // Get top processes by run count for the last 7 days
|
|
14056
|
+
* const topProcesses = await maestroProcesses.getTopRunCount(
|
|
14057
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14058
|
+
* new Date()
|
|
14059
|
+
* );
|
|
14060
|
+
*
|
|
14061
|
+
* for (const process of topProcesses) {
|
|
14062
|
+
* console.log(`${process.packageId}: ${process.runCount} runs`);
|
|
14063
|
+
* }
|
|
14064
|
+
* ```
|
|
14065
|
+
*
|
|
14066
|
+
* @example
|
|
14067
|
+
* ```typescript
|
|
14068
|
+
* // Get top processes by run count for a specific package
|
|
14069
|
+
* const filtered = await maestroProcesses.getTopRunCount(
|
|
14070
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14071
|
+
* new Date(),
|
|
14072
|
+
* { packageId: '<packageId>' }
|
|
14073
|
+
* );
|
|
14074
|
+
* ```
|
|
14075
|
+
*/
|
|
14076
|
+
async getTopRunCount(startTime, endTime, options) {
|
|
14077
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_BY_RUN_COUNT, buildInsightsTopBody(startTime, endTime, false, options));
|
|
14078
|
+
return (data ?? []).map(process => ({ ...process, name: process.packageId }));
|
|
14079
|
+
}
|
|
14080
|
+
/**
|
|
14081
|
+
* Get all instances status counts aggregated by date for maestro processes.
|
|
14082
|
+
*
|
|
14083
|
+
* Returns time-grouped counts of instances grouped by status (Completed, Faulted, Cancelled),
|
|
14084
|
+
* useful for rendering time-series charts. Use `groupBy` to control the time bucket size
|
|
14085
|
+
* (hour, day, or week) — defaults to day if not provided.
|
|
14086
|
+
*
|
|
14087
|
+
* @param startTime - Start of the time range to query
|
|
14088
|
+
* @param endTime - End of the time range to query
|
|
14089
|
+
* @param options - Optional settings for time bucketing granularity
|
|
14090
|
+
* @returns Promise resolving to an array of {@link InstanceStatusTimelineResponse}
|
|
14091
|
+
*
|
|
14092
|
+
* @example
|
|
14093
|
+
* ```typescript
|
|
14094
|
+
* // Get daily instance status for the last 7 days
|
|
14095
|
+
* const now = new Date();
|
|
14096
|
+
* const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
|
|
14097
|
+
* const statuses = await maestroProcesses.getInstanceStatusTimeline(sevenDaysAgo, now);
|
|
14098
|
+
*
|
|
14099
|
+
* for (const entry of statuses) {
|
|
14100
|
+
* console.log(`${entry.startTime} — ${entry.status}: ${entry.count}`);
|
|
14101
|
+
* }
|
|
14102
|
+
* ```
|
|
14103
|
+
*
|
|
14104
|
+
* @example
|
|
14105
|
+
* ```typescript
|
|
14106
|
+
* import { TimeInterval } from '@uipath/uipath-typescript/maestro-processes';
|
|
14107
|
+
*
|
|
14108
|
+
* // Get hourly breakdown
|
|
14109
|
+
* const statuses = await maestroProcesses.getInstanceStatusTimeline(startTime, endTime, {
|
|
14110
|
+
* groupBy: TimeInterval.Hour,
|
|
14111
|
+
* });
|
|
14112
|
+
* ```
|
|
14113
|
+
*
|
|
14114
|
+
* @example
|
|
14115
|
+
* ```typescript
|
|
14116
|
+
* // Get all-time data (from Unix epoch to now)
|
|
14117
|
+
* const allTime = await maestroProcesses.getInstanceStatusTimeline(new Date(0), new Date());
|
|
14118
|
+
* ```
|
|
14119
|
+
*/
|
|
14120
|
+
async getInstanceStatusTimeline(startTime, endTime, options) {
|
|
14121
|
+
return fetchInstanceStatusTimeline(this.post.bind(this), startTime, endTime, false, options);
|
|
14122
|
+
}
|
|
14123
|
+
/**
|
|
14124
|
+
* Get the top 10 processes ranked by failure count within a time range.
|
|
14125
|
+
*
|
|
14126
|
+
* Returns an array of up to 10 processes sorted by how many instances faulted,
|
|
14127
|
+
* useful for identifying the most error-prone processes in a given period.
|
|
14128
|
+
*
|
|
14129
|
+
* @param startTime - Start of the time range to query
|
|
14130
|
+
* @param endTime - End of the time range to query
|
|
14131
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14132
|
+
* @returns Promise resolving to an array of {@link ProcessGetTopFaultedCountResponse}
|
|
14133
|
+
* @example
|
|
14134
|
+
* ```typescript
|
|
14135
|
+
* import { MaestroProcesses } from '@uipath/uipath-typescript/maestro-processes';
|
|
14136
|
+
*
|
|
14137
|
+
* const maestroProcesses = new MaestroProcesses(sdk);
|
|
14138
|
+
*
|
|
14139
|
+
* // Get top processes by faulted count for the last 7 days
|
|
14140
|
+
* const topFailing = await maestroProcesses.getTopFaultedCount(
|
|
14141
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14142
|
+
* new Date()
|
|
14143
|
+
* );
|
|
14144
|
+
*
|
|
14145
|
+
* for (const process of topFailing) {
|
|
14146
|
+
* console.log(`${process.packageId}: ${process.faultedCount} failures`);
|
|
14147
|
+
* }
|
|
14148
|
+
* ```
|
|
14149
|
+
*
|
|
14150
|
+
* @example
|
|
14151
|
+
* ```typescript
|
|
14152
|
+
* // Get top processes by faulted count for a specific package
|
|
14153
|
+
* const filtered = await maestroProcesses.getTopFaultedCount(
|
|
14154
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14155
|
+
* new Date(),
|
|
14156
|
+
* { packageId: '<packageId>' }
|
|
14157
|
+
* );
|
|
14158
|
+
* ```
|
|
14159
|
+
*/
|
|
14160
|
+
async getTopFaultedCount(startTime, endTime, options) {
|
|
14161
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_WITH_FAILURE, buildInsightsTopBody(startTime, endTime, false, options));
|
|
14162
|
+
return (data ?? []).map(item => ({
|
|
14163
|
+
packageId: item.packageId,
|
|
14164
|
+
processKey: item.processKey,
|
|
14165
|
+
faultedCount: item.runCount,
|
|
14166
|
+
name: item.packageId,
|
|
14167
|
+
}));
|
|
14168
|
+
}
|
|
14169
|
+
/**
|
|
14170
|
+
* Get the top 5 processes ranked by total duration within a time range.
|
|
14171
|
+
*
|
|
14172
|
+
* Returns an array of up to 5 processes sorted by their total execution time,
|
|
14173
|
+
* useful for identifying the longest-running processes in a given period.
|
|
14174
|
+
*
|
|
14175
|
+
* @param startTime - Start of the time range to query
|
|
14176
|
+
* @param endTime - End of the time range to query
|
|
14177
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14178
|
+
* @returns Promise resolving to an array of {@link ProcessGetTopDurationResponse}
|
|
14179
|
+
* @example
|
|
14180
|
+
* ```typescript
|
|
14181
|
+
* import { MaestroProcesses } from '@uipath/uipath-typescript/maestro-processes';
|
|
14182
|
+
*
|
|
14183
|
+
* const maestroProcesses = new MaestroProcesses(sdk);
|
|
14184
|
+
*
|
|
14185
|
+
* // Get top processes by duration for the last 7 days
|
|
14186
|
+
* const topProcesses = await maestroProcesses.getTopExecutionDuration(
|
|
14187
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14188
|
+
* new Date()
|
|
14189
|
+
* );
|
|
14190
|
+
*
|
|
14191
|
+
* for (const process of topProcesses) {
|
|
14192
|
+
* console.log(`${process.packageId}: ${process.duration}ms total`);
|
|
14193
|
+
* }
|
|
14194
|
+
* ```
|
|
14195
|
+
*
|
|
14196
|
+
* @example
|
|
14197
|
+
* ```typescript
|
|
14198
|
+
* // Get top processes by duration for a specific package
|
|
14199
|
+
* const filtered = await maestroProcesses.getTopExecutionDuration(
|
|
14200
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14201
|
+
* new Date(),
|
|
14202
|
+
* { packageId: '<packageId>' }
|
|
14203
|
+
* );
|
|
14204
|
+
* ```
|
|
14205
|
+
*/
|
|
14206
|
+
async getTopExecutionDuration(startTime, endTime, options) {
|
|
14207
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_BY_DURATION, buildInsightsTopBody(startTime, endTime, false, options));
|
|
14208
|
+
return (data ?? []).map(process => ({ ...process, name: process.packageId }));
|
|
14209
|
+
}
|
|
13748
14210
|
}
|
|
13749
14211
|
__decorate([
|
|
13750
14212
|
track('MaestroProcesses.GetAll')
|
|
@@ -13752,6 +14214,18 @@
|
|
|
13752
14214
|
__decorate([
|
|
13753
14215
|
track('MaestroProcesses.GetIncidents')
|
|
13754
14216
|
], MaestroProcessesService.prototype, "getIncidents", null);
|
|
14217
|
+
__decorate([
|
|
14218
|
+
track('MaestroProcesses.GetTopRunCount')
|
|
14219
|
+
], MaestroProcessesService.prototype, "getTopRunCount", null);
|
|
14220
|
+
__decorate([
|
|
14221
|
+
track('MaestroProcesses.GetInstanceStatusTimeline')
|
|
14222
|
+
], MaestroProcessesService.prototype, "getInstanceStatusTimeline", null);
|
|
14223
|
+
__decorate([
|
|
14224
|
+
track('MaestroProcesses.GetTopFaultedCount')
|
|
14225
|
+
], MaestroProcessesService.prototype, "getTopFaultedCount", null);
|
|
14226
|
+
__decorate([
|
|
14227
|
+
track('MaestroProcesses.GetTopExecutionDuration')
|
|
14228
|
+
], MaestroProcessesService.prototype, "getTopExecutionDuration", null);
|
|
13755
14229
|
|
|
13756
14230
|
/**
|
|
13757
14231
|
* Service class for Maestro Process Incidents
|
|
@@ -13836,6 +14310,177 @@
|
|
|
13836
14310
|
name: this.extractCaseName(caseItem.packageId)
|
|
13837
14311
|
}));
|
|
13838
14312
|
}
|
|
14313
|
+
/**
|
|
14314
|
+
* Get the top 5 case processes ranked by run count within a time range.
|
|
14315
|
+
*
|
|
14316
|
+
* Returns an array of up to 5 case processes sorted by how many times they were executed,
|
|
14317
|
+
* useful for identifying the most active case processes in a given period.
|
|
14318
|
+
*
|
|
14319
|
+
* @param startTime - Start of the time range to query
|
|
14320
|
+
* @param endTime - End of the time range to query
|
|
14321
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14322
|
+
* @returns Promise resolving to an array of {@link CaseGetTopRunCountResponse}
|
|
14323
|
+
* @example
|
|
14324
|
+
* ```typescript
|
|
14325
|
+
* import { Cases } from '@uipath/uipath-typescript/cases';
|
|
14326
|
+
*
|
|
14327
|
+
* const cases = new Cases(sdk);
|
|
14328
|
+
*
|
|
14329
|
+
* // Get top case processes by run count for the last 7 days
|
|
14330
|
+
* const topProcesses = await cases.getTopRunCount(
|
|
14331
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14332
|
+
* new Date()
|
|
14333
|
+
* );
|
|
14334
|
+
*
|
|
14335
|
+
* for (const process of topProcesses) {
|
|
14336
|
+
* console.log(`${process.packageId}: ${process.runCount} runs`);
|
|
14337
|
+
* }
|
|
14338
|
+
* ```
|
|
14339
|
+
*
|
|
14340
|
+
* @example
|
|
14341
|
+
* ```typescript
|
|
14342
|
+
* // Get top case processes by run count for a specific package
|
|
14343
|
+
* const filtered = await cases.getTopRunCount(
|
|
14344
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14345
|
+
* new Date(),
|
|
14346
|
+
* { packageId: '<packageId>' }
|
|
14347
|
+
* );
|
|
14348
|
+
* ```
|
|
14349
|
+
*/
|
|
14350
|
+
async getTopRunCount(startTime, endTime, options) {
|
|
14351
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_BY_RUN_COUNT, buildInsightsTopBody(startTime, endTime, true, options));
|
|
14352
|
+
return (data ?? []).map(process => ({ ...process, name: this.extractCaseName(process.packageId) }));
|
|
14353
|
+
}
|
|
14354
|
+
/**
|
|
14355
|
+
* Get all instances status counts aggregated by date for case management processes.
|
|
14356
|
+
*
|
|
14357
|
+
* Returns time-grouped counts of case instances grouped by status (Completed, Faulted, Cancelled),
|
|
14358
|
+
* useful for rendering time-series charts. Use `groupBy` to control the time bucket size
|
|
14359
|
+
* (hour, day, or week) — defaults to day if not provided.
|
|
14360
|
+
*
|
|
14361
|
+
* @param startTime - Start of the time range to query
|
|
14362
|
+
* @param endTime - End of the time range to query
|
|
14363
|
+
* @param options - Optional settings for time bucketing granularity
|
|
14364
|
+
* @returns Promise resolving to an array of {@link InstanceStatusTimelineResponse}
|
|
14365
|
+
*
|
|
14366
|
+
* @example
|
|
14367
|
+
* ```typescript
|
|
14368
|
+
* // Get daily instance status for the last 7 days
|
|
14369
|
+
* const now = new Date();
|
|
14370
|
+
* const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
|
|
14371
|
+
* const statuses = await cases.getInstanceStatusTimeline(sevenDaysAgo, now);
|
|
14372
|
+
*
|
|
14373
|
+
* for (const entry of statuses) {
|
|
14374
|
+
* console.log(`${entry.startTime} — ${entry.status}: ${entry.count}`);
|
|
14375
|
+
* }
|
|
14376
|
+
* ```
|
|
14377
|
+
*
|
|
14378
|
+
* @example
|
|
14379
|
+
* ```typescript
|
|
14380
|
+
* import { TimeInterval } from '@uipath/uipath-typescript/cases';
|
|
14381
|
+
*
|
|
14382
|
+
* // Get weekly breakdown
|
|
14383
|
+
* const statuses = await cases.getInstanceStatusTimeline(startTime, endTime, {
|
|
14384
|
+
* groupBy: TimeInterval.Week,
|
|
14385
|
+
* });
|
|
14386
|
+
* ```
|
|
14387
|
+
*
|
|
14388
|
+
* @example
|
|
14389
|
+
* ```typescript
|
|
14390
|
+
* // Get all-time data (from Unix epoch to now)
|
|
14391
|
+
* const allTime = await cases.getInstanceStatusTimeline(new Date(0), new Date());
|
|
14392
|
+
* ```
|
|
14393
|
+
*/
|
|
14394
|
+
async getInstanceStatusTimeline(startTime, endTime, options) {
|
|
14395
|
+
return fetchInstanceStatusTimeline(this.post.bind(this), startTime, endTime, true, options);
|
|
14396
|
+
}
|
|
14397
|
+
/**
|
|
14398
|
+
* Get the top 10 case processes ranked by failure count within a time range.
|
|
14399
|
+
*
|
|
14400
|
+
* Returns an array of up to 10 case processes sorted by how many instances faulted,
|
|
14401
|
+
* useful for identifying the most error-prone case processes in a given period.
|
|
14402
|
+
*
|
|
14403
|
+
* @param startTime - Start of the time range to query
|
|
14404
|
+
* @param endTime - End of the time range to query
|
|
14405
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14406
|
+
* @returns Promise resolving to an array of {@link CaseGetTopFaultedCountResponse}
|
|
14407
|
+
* @example
|
|
14408
|
+
* ```typescript
|
|
14409
|
+
* import { Cases } from '@uipath/uipath-typescript/cases';
|
|
14410
|
+
*
|
|
14411
|
+
* const cases = new Cases(sdk);
|
|
14412
|
+
*
|
|
14413
|
+
* // Get top case processes by faulted count for the last 7 days
|
|
14414
|
+
* const topFailing = await cases.getTopFaultedCount(
|
|
14415
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14416
|
+
* new Date()
|
|
14417
|
+
* );
|
|
14418
|
+
*
|
|
14419
|
+
* for (const process of topFailing) {
|
|
14420
|
+
* console.log(`${process.packageId}: ${process.faultedCount} failures`);
|
|
14421
|
+
* }
|
|
14422
|
+
* ```
|
|
14423
|
+
*
|
|
14424
|
+
* @example
|
|
14425
|
+
* ```typescript
|
|
14426
|
+
* // Get top case processes by faulted count for a specific package
|
|
14427
|
+
* const filtered = await cases.getTopFaultedCount(
|
|
14428
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14429
|
+
* new Date(),
|
|
14430
|
+
* { packageId: '<packageId>' }
|
|
14431
|
+
* );
|
|
14432
|
+
* ```
|
|
14433
|
+
*/
|
|
14434
|
+
async getTopFaultedCount(startTime, endTime, options) {
|
|
14435
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_WITH_FAILURE, buildInsightsTopBody(startTime, endTime, true, options));
|
|
14436
|
+
return (data ?? []).map(item => ({
|
|
14437
|
+
packageId: item.packageId,
|
|
14438
|
+
processKey: item.processKey,
|
|
14439
|
+
faultedCount: item.runCount,
|
|
14440
|
+
name: this.extractCaseName(item.packageId),
|
|
14441
|
+
}));
|
|
14442
|
+
}
|
|
14443
|
+
/**
|
|
14444
|
+
* Get the top 5 case processes ranked by total duration within a time range.
|
|
14445
|
+
*
|
|
14446
|
+
* Returns an array of up to 5 case processes sorted by their total execution time,
|
|
14447
|
+
* useful for identifying the longest-running case processes in a given period.
|
|
14448
|
+
*
|
|
14449
|
+
* @param startTime - Start of the time range to query
|
|
14450
|
+
* @param endTime - End of the time range to query
|
|
14451
|
+
* @param options - Optional filters (packageId, processKey, version)
|
|
14452
|
+
* @returns Promise resolving to an array of {@link CaseGetTopDurationResponse}
|
|
14453
|
+
* @example
|
|
14454
|
+
* ```typescript
|
|
14455
|
+
* import { Cases } from '@uipath/uipath-typescript/cases';
|
|
14456
|
+
*
|
|
14457
|
+
* const cases = new Cases(sdk);
|
|
14458
|
+
*
|
|
14459
|
+
* // Get top case processes by duration for the last 7 days
|
|
14460
|
+
* const topProcesses = await cases.getTopExecutionDuration(
|
|
14461
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14462
|
+
* new Date()
|
|
14463
|
+
* );
|
|
14464
|
+
*
|
|
14465
|
+
* for (const process of topProcesses) {
|
|
14466
|
+
* console.log(`${process.packageId}: ${process.duration}ms total`);
|
|
14467
|
+
* }
|
|
14468
|
+
* ```
|
|
14469
|
+
*
|
|
14470
|
+
* @example
|
|
14471
|
+
* ```typescript
|
|
14472
|
+
* // Get top case processes by duration for a specific package
|
|
14473
|
+
* const filtered = await cases.getTopExecutionDuration(
|
|
14474
|
+
* new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
|
14475
|
+
* new Date(),
|
|
14476
|
+
* { packageId: '<packageId>' }
|
|
14477
|
+
* );
|
|
14478
|
+
* ```
|
|
14479
|
+
*/
|
|
14480
|
+
async getTopExecutionDuration(startTime, endTime, options) {
|
|
14481
|
+
const { data } = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.TOP_PROCESSES_BY_DURATION, buildInsightsTopBody(startTime, endTime, true, options));
|
|
14482
|
+
return (data ?? []).map(process => ({ ...process, name: this.extractCaseName(process.packageId) }));
|
|
14483
|
+
}
|
|
13839
14484
|
/**
|
|
13840
14485
|
* Extract a readable case name from the packageId
|
|
13841
14486
|
* @param packageId - The full package identifier
|
|
@@ -13858,6 +14503,18 @@
|
|
|
13858
14503
|
__decorate([
|
|
13859
14504
|
track('Cases.GetAll')
|
|
13860
14505
|
], CasesService.prototype, "getAll", null);
|
|
14506
|
+
__decorate([
|
|
14507
|
+
track('Cases.GetTopRunCount')
|
|
14508
|
+
], CasesService.prototype, "getTopRunCount", null);
|
|
14509
|
+
__decorate([
|
|
14510
|
+
track('Cases.GetInstanceStatusTimeline')
|
|
14511
|
+
], CasesService.prototype, "getInstanceStatusTimeline", null);
|
|
14512
|
+
__decorate([
|
|
14513
|
+
track('Cases.GetTopFaultedCount')
|
|
14514
|
+
], CasesService.prototype, "getTopFaultedCount", null);
|
|
14515
|
+
__decorate([
|
|
14516
|
+
track('Cases.GetTopExecutionDuration')
|
|
14517
|
+
], CasesService.prototype, "getTopExecutionDuration", null);
|
|
13861
14518
|
|
|
13862
14519
|
/**
|
|
13863
14520
|
* Maps fields for Case Instance entities to ensure consistent naming
|
|
@@ -14909,6 +15566,104 @@
|
|
|
14909
15566
|
};
|
|
14910
15567
|
return await this.taskService.getAll(enhancedOptions);
|
|
14911
15568
|
}
|
|
15569
|
+
/**
|
|
15570
|
+
* Get SLA summary for all case instances across folders.
|
|
15571
|
+
*
|
|
15572
|
+
* Returns SLA status, due times, escalation info, and instance metadata for each case instance.
|
|
15573
|
+
* The default page size is 50, so only the top 50 items are returned when no pagination options are provided.
|
|
15574
|
+
*
|
|
15575
|
+
* @param options - Optional filtering and pagination options
|
|
15576
|
+
* @returns Promise resolving to {@link SlaSummaryResponse}, paginated or non-paginated based on options
|
|
15577
|
+
* @example
|
|
15578
|
+
* ```typescript
|
|
15579
|
+
* // Non-paginated (returns top 50 items by default)
|
|
15580
|
+
* const summary = await caseInstances.getSlaSummary();
|
|
15581
|
+
* console.log(`Found ${summary.totalCount} cases`);
|
|
15582
|
+
*
|
|
15583
|
+
* // Filter by case instance ID
|
|
15584
|
+
* const filtered = await caseInstances.getSlaSummary({
|
|
15585
|
+
* caseInstanceId: '<caseInstanceId>'
|
|
15586
|
+
* });
|
|
15587
|
+
*
|
|
15588
|
+
* // Filter by time range
|
|
15589
|
+
* const timeFiltered = await caseInstances.getSlaSummary({
|
|
15590
|
+
* startTimeUtc: new Date('2026-01-01'),
|
|
15591
|
+
* endTimeUtc: new Date('2026-01-31')
|
|
15592
|
+
* });
|
|
15593
|
+
*
|
|
15594
|
+
* // With pagination
|
|
15595
|
+
* const page1 = await caseInstances.getSlaSummary({ pageSize: 25 });
|
|
15596
|
+
* if (page1.hasNextPage) {
|
|
15597
|
+
* const page2 = await caseInstances.getSlaSummary({ cursor: page1.nextCursor });
|
|
15598
|
+
* }
|
|
15599
|
+
*
|
|
15600
|
+
* // Jump to specific page
|
|
15601
|
+
* const page3 = await caseInstances.getSlaSummary({ jumpToPage: 3, pageSize: 25 });
|
|
15602
|
+
* ```
|
|
15603
|
+
*/
|
|
15604
|
+
async getSlaSummary(options) {
|
|
15605
|
+
const apiOptions = options ? {
|
|
15606
|
+
...options,
|
|
15607
|
+
startTimeUtc: options.startTimeUtc?.toISOString(),
|
|
15608
|
+
endTimeUtc: options.endTimeUtc?.toISOString()
|
|
15609
|
+
} : undefined;
|
|
15610
|
+
return PaginationHelpers.getAll({
|
|
15611
|
+
serviceAccess: this.createPaginationServiceAccess(),
|
|
15612
|
+
getEndpoint: () => MAESTRO_ENDPOINTS.INSIGHTS.SLA_SUMMARY,
|
|
15613
|
+
method: HTTP_METHODS.POST,
|
|
15614
|
+
excludeFromPrefix: ['caseInstanceId', 'startTimeUtc', 'endTimeUtc'],
|
|
15615
|
+
transformFn: (item) => ({
|
|
15616
|
+
...item,
|
|
15617
|
+
slaDueTime: toISOUtc(item.slaDueTime),
|
|
15618
|
+
lastModifiedTime: toISOUtc(item.lastModifiedTime)
|
|
15619
|
+
}),
|
|
15620
|
+
pagination: {
|
|
15621
|
+
paginationType: PaginationType.OFFSET,
|
|
15622
|
+
itemsField: SLA_SUMMARY_PAGINATION.ITEMS_FIELD,
|
|
15623
|
+
totalCountField: SLA_SUMMARY_PAGINATION.TOTAL_COUNT_FIELD,
|
|
15624
|
+
paginationParams: {
|
|
15625
|
+
pageSizeParam: SLA_SUMMARY_OFFSET_PARAMS.PAGE_SIZE_PARAM,
|
|
15626
|
+
offsetParam: SLA_SUMMARY_OFFSET_PARAMS.OFFSET_PARAM,
|
|
15627
|
+
countParam: SLA_SUMMARY_OFFSET_PARAMS.COUNT_PARAM,
|
|
15628
|
+
convertToSkip: false
|
|
15629
|
+
}
|
|
15630
|
+
}
|
|
15631
|
+
}, apiOptions);
|
|
15632
|
+
}
|
|
15633
|
+
/**
|
|
15634
|
+
* Get stages SLA summary for case instances across folders.
|
|
15635
|
+
*
|
|
15636
|
+
* Returns stage-level SLA status and escalation information for each case instance, aggregated from Insights Real-Time Monitoring.
|
|
15637
|
+
*
|
|
15638
|
+
* @param options - Optional filtering options
|
|
15639
|
+
* @returns Promise resolving to an array of {@link CaseInstanceStageSLAResponse}
|
|
15640
|
+
* @example
|
|
15641
|
+
* ```typescript
|
|
15642
|
+
* // Get stages SLA summary for all case instances
|
|
15643
|
+
* const stagesSla = await caseInstances.getStagesSlaSummary();
|
|
15644
|
+
* for (const item of stagesSla) {
|
|
15645
|
+
* console.log(`Instance: ${item.caseInstanceId}`);
|
|
15646
|
+
* for (const stage of item.stages) {
|
|
15647
|
+
* console.log(` Stage: ${stage.name} - SLA Status: ${stage.slaStatus}, Due: ${stage.slaDueTime}`);
|
|
15648
|
+
* }
|
|
15649
|
+
* }
|
|
15650
|
+
*
|
|
15651
|
+
* // Filter by case instance ID
|
|
15652
|
+
* const filtered = await caseInstances.getStagesSlaSummary({
|
|
15653
|
+
* caseInstanceId: '<caseInstanceId>'
|
|
15654
|
+
* });
|
|
15655
|
+
*
|
|
15656
|
+
* // Using bound method on a case instance
|
|
15657
|
+
* const instance = await caseInstances.getById('<instanceId>', '<folderKey>');
|
|
15658
|
+
* const stagesSla = await instance.getStagesSlaSummary();
|
|
15659
|
+
* ```
|
|
15660
|
+
*/
|
|
15661
|
+
async getStagesSlaSummary(options) {
|
|
15662
|
+
const response = await this.post(MAESTRO_ENDPOINTS.INSIGHTS.STAGES_SUMMARY, {
|
|
15663
|
+
caseInstanceId: options?.caseInstanceId,
|
|
15664
|
+
});
|
|
15665
|
+
return response.data ?? [];
|
|
15666
|
+
}
|
|
14912
15667
|
}
|
|
14913
15668
|
__decorate([
|
|
14914
15669
|
track('CaseInstances.GetAll')
|
|
@@ -14937,6 +15692,12 @@
|
|
|
14937
15692
|
__decorate([
|
|
14938
15693
|
track('CaseInstances.GetActionTasks')
|
|
14939
15694
|
], CaseInstancesService.prototype, "getActionTasks", null);
|
|
15695
|
+
__decorate([
|
|
15696
|
+
track('CaseInstances.GetSlaSummary')
|
|
15697
|
+
], CaseInstancesService.prototype, "getSlaSummary", null);
|
|
15698
|
+
__decorate([
|
|
15699
|
+
track('CaseInstances.GetStagesSlaSummary')
|
|
15700
|
+
], CaseInstancesService.prototype, "getStagesSlaSummary", null);
|
|
14940
15701
|
|
|
14941
15702
|
/**
|
|
14942
15703
|
* Validates the `name` argument passed to a `getByName(name, ...)` method.
|
|
@@ -15344,6 +16105,32 @@
|
|
|
15344
16105
|
// Transform response from PascalCase to camelCase
|
|
15345
16106
|
return pascalToCamelCaseKeys(response.data);
|
|
15346
16107
|
}
|
|
16108
|
+
/**
|
|
16109
|
+
* Retrieves a single orchestrator storage bucket by name.
|
|
16110
|
+
*
|
|
16111
|
+
* @param name - Bucket name to search for
|
|
16112
|
+
* @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) and optional query parameters (`expand`, `select`)
|
|
16113
|
+
* @returns Promise resolving to a single bucket
|
|
16114
|
+
* {@link BucketGetResponse}
|
|
16115
|
+
* @example
|
|
16116
|
+
* ```typescript
|
|
16117
|
+
* import { Buckets } from '@uipath/uipath-typescript/buckets';
|
|
16118
|
+
*
|
|
16119
|
+
* const buckets = new Buckets(sdk);
|
|
16120
|
+
*
|
|
16121
|
+
* // By folder ID
|
|
16122
|
+
* await buckets.getByName('MyBucket', { folderId: <folderId> });
|
|
16123
|
+
*
|
|
16124
|
+
* // By folder key (GUID)
|
|
16125
|
+
* await buckets.getByName('MyBucket', { folderKey: '<folderKey>' });
|
|
16126
|
+
*
|
|
16127
|
+
* // By folder path
|
|
16128
|
+
* await buckets.getByName('MyBucket', { folderPath: '<folderPath>' });
|
|
16129
|
+
* ```
|
|
16130
|
+
*/
|
|
16131
|
+
async getByName(name, options = {}) {
|
|
16132
|
+
return this.getByNameLookup('Bucket', BUCKET_ENDPOINTS.GET_BY_FOLDER, name, options, (raw) => pascalToCamelCaseKeys(raw));
|
|
16133
|
+
}
|
|
15347
16134
|
/**
|
|
15348
16135
|
* Gets all buckets across folders with optional filtering and folder scoping
|
|
15349
16136
|
*
|
|
@@ -15633,6 +16420,9 @@
|
|
|
15633
16420
|
__decorate([
|
|
15634
16421
|
track('Buckets.GetById')
|
|
15635
16422
|
], BucketService.prototype, "getById", null);
|
|
16423
|
+
__decorate([
|
|
16424
|
+
track('Buckets.GetByName')
|
|
16425
|
+
], BucketService.prototype, "getByName", null);
|
|
15636
16426
|
__decorate([
|
|
15637
16427
|
track('Buckets.GetAll')
|
|
15638
16428
|
], BucketService.prototype, "getAll", null);
|
|
@@ -16810,6 +17600,17 @@
|
|
|
16810
17600
|
lastActivityAt: 'lastActivityTime',
|
|
16811
17601
|
agentReleaseId: 'agentId'
|
|
16812
17602
|
};
|
|
17603
|
+
/**
|
|
17604
|
+
* Maps API filter param names (left) to SDK-facing names (right) for the conversation list endpoint.
|
|
17605
|
+
* Used by `getAll` to translate SDK filters to the field names the backend expects. Kept separate
|
|
17606
|
+
* from `ConversationMap` because `label`/`search` would otherwise collide with the `label` field
|
|
17607
|
+
* on create/update payloads.
|
|
17608
|
+
*/
|
|
17609
|
+
const ConversationGetAllFilterMap = {
|
|
17610
|
+
agentReleaseKey: 'agentKey',
|
|
17611
|
+
agentReleaseId: 'agentId',
|
|
17612
|
+
search: 'label'
|
|
17613
|
+
};
|
|
16813
17614
|
/**
|
|
16814
17615
|
* Maps fields for Exchange entity to ensure consistent SDK naming
|
|
16815
17616
|
*/
|
|
@@ -17169,8 +17970,8 @@
|
|
|
17169
17970
|
// Auto-generated from the OpenAPI spec — do not edit manually.
|
|
17170
17971
|
var ModelKind;
|
|
17171
17972
|
(function (ModelKind) {
|
|
17172
|
-
ModelKind["Classifier"] = "Classifier";
|
|
17173
17973
|
ModelKind["Extractor"] = "Extractor";
|
|
17974
|
+
ModelKind["Classifier"] = "Classifier";
|
|
17174
17975
|
})(ModelKind || (ModelKind = {}));
|
|
17175
17976
|
var ModelType;
|
|
17176
17977
|
(function (ModelType) {
|
|
@@ -17179,6 +17980,14 @@
|
|
|
17179
17980
|
ModelType["Predefined"] = "Predefined";
|
|
17180
17981
|
})(ModelType || (ModelType = {}));
|
|
17181
17982
|
|
|
17983
|
+
// Auto-generated from the OpenAPI spec — do not edit manually.
|
|
17984
|
+
var ErrorSeverity;
|
|
17985
|
+
(function (ErrorSeverity) {
|
|
17986
|
+
ErrorSeverity["Info"] = "Info";
|
|
17987
|
+
ErrorSeverity["Warning"] = "Warning";
|
|
17988
|
+
ErrorSeverity["Error"] = "Error";
|
|
17989
|
+
})(ErrorSeverity || (ErrorSeverity = {}));
|
|
17990
|
+
|
|
17182
17991
|
// Auto-generated from the OpenAPI spec — do not edit manually.
|
|
17183
17992
|
var ClassifierDocumentTypeType;
|
|
17184
17993
|
(function (ClassifierDocumentTypeType) {
|
|
@@ -17203,6 +18012,13 @@
|
|
|
17203
18012
|
GptFieldType["Number"] = "Number";
|
|
17204
18013
|
GptFieldType["Text"] = "Text";
|
|
17205
18014
|
})(GptFieldType || (GptFieldType = {}));
|
|
18015
|
+
var JobStatus;
|
|
18016
|
+
(function (JobStatus) {
|
|
18017
|
+
JobStatus["Succeeded"] = "Succeeded";
|
|
18018
|
+
JobStatus["Failed"] = "Failed";
|
|
18019
|
+
JobStatus["Running"] = "Running";
|
|
18020
|
+
JobStatus["NotStarted"] = "NotStarted";
|
|
18021
|
+
})(JobStatus || (JobStatus = {}));
|
|
17206
18022
|
var ValidationDisplayMode;
|
|
17207
18023
|
(function (ValidationDisplayMode) {
|
|
17208
18024
|
ValidationDisplayMode["Classic"] = "Classic";
|
|
@@ -17289,8 +18105,10 @@
|
|
|
17289
18105
|
get DocumentActionPriority () { return DocumentActionPriority; },
|
|
17290
18106
|
get DocumentActionStatus () { return DocumentActionStatus; },
|
|
17291
18107
|
get DocumentActionType () { return DocumentActionType; },
|
|
18108
|
+
get ErrorSeverity () { return ErrorSeverity; },
|
|
17292
18109
|
get FieldType () { return FieldType; },
|
|
17293
18110
|
get GptFieldType () { return GptFieldType; },
|
|
18111
|
+
get JobStatus () { return JobStatus; },
|
|
17294
18112
|
get LogicalOperator () { return LogicalOperator; },
|
|
17295
18113
|
get MarkupType () { return MarkupType; },
|
|
17296
18114
|
get ModelKind () { return ModelKind; },
|
|
@@ -17384,17 +18202,10 @@
|
|
|
17384
18202
|
return getMetaTagContent(exports.UiPathMetaTags.APP_BASE) || '/';
|
|
17385
18203
|
}
|
|
17386
18204
|
|
|
17387
|
-
exports.APP_NAME = APP_NAME;
|
|
17388
18205
|
exports.AgentMap = AgentMap;
|
|
17389
18206
|
exports.AuthenticationError = AuthenticationError;
|
|
17390
18207
|
exports.AuthorizationError = AuthorizationError;
|
|
17391
|
-
exports.
|
|
17392
|
-
exports.CLOUD_ORGANIZATION_NAME = CLOUD_ORGANIZATION_NAME;
|
|
17393
|
-
exports.CLOUD_REDIRECT_URI = CLOUD_REDIRECT_URI;
|
|
17394
|
-
exports.CLOUD_ROLE_NAME = CLOUD_ROLE_NAME;
|
|
17395
|
-
exports.CLOUD_TENANT_NAME = CLOUD_TENANT_NAME;
|
|
17396
|
-
exports.CLOUD_URL = CLOUD_URL;
|
|
17397
|
-
exports.CONNECTION_STRING = CONNECTION_STRING;
|
|
18208
|
+
exports.ConversationGetAllFilterMap = ConversationGetAllFilterMap;
|
|
17398
18209
|
exports.ConversationMap = ConversationMap;
|
|
17399
18210
|
exports.DEFAULT_ITEMS_FIELD = DEFAULT_ITEMS_FIELD;
|
|
17400
18211
|
exports.DEFAULT_PAGE_SIZE = DEFAULT_PAGE_SIZE;
|
|
@@ -17408,17 +18219,10 @@
|
|
|
17408
18219
|
exports.NetworkError = NetworkError;
|
|
17409
18220
|
exports.NotFoundError = NotFoundError;
|
|
17410
18221
|
exports.RateLimitError = RateLimitError;
|
|
17411
|
-
exports.SDK_LOGGER_NAME = SDK_LOGGER_NAME;
|
|
17412
|
-
exports.SDK_RUN_EVENT = SDK_RUN_EVENT;
|
|
17413
|
-
exports.SDK_SERVICE_NAME = SDK_SERVICE_NAME;
|
|
17414
|
-
exports.SDK_VERSION = SDK_VERSION;
|
|
17415
|
-
exports.SERVICE = SERVICE;
|
|
17416
18222
|
exports.ServerError = ServerError;
|
|
17417
|
-
exports.UNKNOWN = UNKNOWN$1;
|
|
17418
18223
|
exports.UiPath = UiPath;
|
|
17419
18224
|
exports.UiPathError = UiPathError;
|
|
17420
18225
|
exports.UserSettingsMap = UserSettingsMap;
|
|
17421
|
-
exports.VERSION = VERSION;
|
|
17422
18226
|
exports.ValidationError = ValidationError;
|
|
17423
18227
|
exports.createAgentWithMethods = createAgentWithMethods;
|
|
17424
18228
|
exports.createCaseInstanceWithMethods = createCaseInstanceWithMethods;
|