@uipath/uipath-typescript 1.3.6 → 1.3.7
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 +204 -2
- package/dist/assets/index.d.ts +112 -13
- package/dist/assets/index.mjs +204 -2
- package/dist/attachments/index.cjs +3 -2
- package/dist/attachments/index.d.ts +7 -0
- package/dist/attachments/index.mjs +3 -2
- package/dist/buckets/index.cjs +172 -2
- package/dist/buckets/index.d.ts +56 -12
- package/dist/buckets/index.mjs +172 -2
- package/dist/cases/index.cjs +3 -2
- package/dist/cases/index.d.ts +7 -0
- package/dist/cases/index.mjs +3 -2
- package/dist/conversational-agent/index.cjs +196 -81
- package/dist/conversational-agent/index.d.ts +326 -80
- package/dist/conversational-agent/index.mjs +195 -80
- package/dist/core/index.cjs +18 -6
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.mjs +18 -6
- package/dist/entities/index.cjs +35 -6
- package/dist/entities/index.d.ts +101 -11
- package/dist/entities/index.mjs +36 -7
- package/dist/feedback/index.cjs +3 -2
- package/dist/feedback/index.d.ts +7 -0
- package/dist/feedback/index.mjs +3 -2
- package/dist/index.cjs +286 -13
- package/dist/index.d.ts +475 -32
- package/dist/index.mjs +287 -14
- package/dist/index.umd.js +286 -13
- package/dist/jobs/index.cjs +172 -2
- package/dist/jobs/index.d.ts +67 -23
- package/dist/jobs/index.mjs +172 -2
- package/dist/maestro-processes/index.cjs +3 -2
- package/dist/maestro-processes/index.d.ts +7 -0
- package/dist/maestro-processes/index.mjs +3 -2
- package/dist/processes/index.cjs +240 -3
- package/dist/processes/index.d.ts +124 -2
- package/dist/processes/index.mjs +240 -3
- package/dist/queues/index.cjs +172 -2
- package/dist/queues/index.d.ts +56 -12
- package/dist/queues/index.mjs +172 -2
- package/dist/tasks/index.cjs +3 -2
- package/dist/tasks/index.d.ts +7 -0
- package/dist/tasks/index.mjs +3 -2
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5462,7 +5462,7 @@ function normalizeBaseUrl(url) {
|
|
|
5462
5462
|
// Connection string placeholder that will be replaced during build
|
|
5463
5463
|
const CONNECTION_STRING = "InstrumentationKey=a6efa11d-1feb-4508-9738-e13e12dcae5e;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=7c58eb1c-9581-4ba6-839e-11725848a037";
|
|
5464
5464
|
// SDK Version placeholder
|
|
5465
|
-
const SDK_VERSION = "1.3.
|
|
5465
|
+
const SDK_VERSION = "1.3.7";
|
|
5466
5466
|
const VERSION = "Version";
|
|
5467
5467
|
const SERVICE = "Service";
|
|
5468
5468
|
const CLOUD_ORGANIZATION_NAME = "CloudOrganizationName";
|
|
@@ -5809,6 +5809,8 @@ var UiPathMetaTags;
|
|
|
5809
5809
|
// Asset resolution and routing
|
|
5810
5810
|
UiPathMetaTags["CDN_BASE"] = "uipath:cdn-base";
|
|
5811
5811
|
UiPathMetaTags["APP_BASE"] = "uipath:app-base";
|
|
5812
|
+
// Folder context (injected during coded-app deployment)
|
|
5813
|
+
UiPathMetaTags["FOLDER_KEY"] = "uipath:folder-key";
|
|
5812
5814
|
})(UiPathMetaTags || (UiPathMetaTags = {}));
|
|
5813
5815
|
|
|
5814
5816
|
/**
|
|
@@ -5837,12 +5839,13 @@ function loadFromMetaTags() {
|
|
|
5837
5839
|
tenantName: getMetaTagContent(UiPathMetaTags.TENANT_NAME),
|
|
5838
5840
|
baseUrl: getMetaTagContent(UiPathMetaTags.BASE_URL),
|
|
5839
5841
|
redirectUri: getMetaTagContent(UiPathMetaTags.REDIRECT_URI),
|
|
5842
|
+
folderKey: getMetaTagContent(UiPathMetaTags.FOLDER_KEY),
|
|
5840
5843
|
};
|
|
5841
5844
|
const hasAnyValue = Object.values(config).some(Boolean);
|
|
5842
5845
|
return hasAnyValue ? config : null;
|
|
5843
5846
|
}
|
|
5844
5847
|
|
|
5845
|
-
var _UiPath_instances, _UiPath_config, _UiPath_authService, _UiPath_initialized, _UiPath_partialConfig, _UiPath_multiLogin, _UiPath_initializeWithConfig, _UiPath_loadConfig;
|
|
5848
|
+
var _UiPath_instances, _UiPath_config, _UiPath_authService, _UiPath_initialized, _UiPath_partialConfig, _UiPath_multiLogin, _UiPath_metaFolderKey, _UiPath_initializeWithConfig, _UiPath_loadConfig;
|
|
5846
5849
|
/**
|
|
5847
5850
|
* UiPath - Core SDK class for authentication and configuration management.
|
|
5848
5851
|
*
|
|
@@ -5883,8 +5886,13 @@ let UiPath$1 = class UiPath {
|
|
|
5883
5886
|
_UiPath_initialized.set(this, false);
|
|
5884
5887
|
_UiPath_partialConfig.set(this, void 0);
|
|
5885
5888
|
_UiPath_multiLogin.set(this, false);
|
|
5889
|
+
// Folder key sourced only from `<meta name="uipath:folder-key">` (coded-app
|
|
5890
|
+
// deployments). Not accepted via the public constructor; lives here so the
|
|
5891
|
+
// SDK can flow it through to BaseService.config without polluting BaseConfig.
|
|
5892
|
+
_UiPath_metaFolderKey.set(this, void 0);
|
|
5886
5893
|
// Load configuration from meta tags
|
|
5887
5894
|
const configFromMetaTags = loadFromMetaTags();
|
|
5895
|
+
__classPrivateFieldSet(this, _UiPath_metaFolderKey, configFromMetaTags?.folderKey, "f");
|
|
5888
5896
|
// Merge configuration: constructor config overrides meta tags
|
|
5889
5897
|
const mergedConfig = config ? { ...configFromMetaTags, ...config } : configFromMetaTags;
|
|
5890
5898
|
if (mergedConfig && isCompleteConfig(mergedConfig)) {
|
|
@@ -6013,7 +6021,7 @@ let UiPath$1 = class UiPath {
|
|
|
6013
6021
|
__classPrivateFieldGet(this, _UiPath_authService, "f")?.updateToken(tokenInfo);
|
|
6014
6022
|
}
|
|
6015
6023
|
};
|
|
6016
|
-
_UiPath_config = new WeakMap(), _UiPath_authService = new WeakMap(), _UiPath_initialized = new WeakMap(), _UiPath_partialConfig = new WeakMap(), _UiPath_multiLogin = new WeakMap(), _UiPath_instances = new WeakSet(), _UiPath_initializeWithConfig = function _UiPath_initializeWithConfig(config) {
|
|
6024
|
+
_UiPath_config = new WeakMap(), _UiPath_authService = new WeakMap(), _UiPath_initialized = new WeakMap(), _UiPath_partialConfig = new WeakMap(), _UiPath_multiLogin = new WeakMap(), _UiPath_metaFolderKey = new WeakMap(), _UiPath_instances = new WeakSet(), _UiPath_initializeWithConfig = function _UiPath_initializeWithConfig(config) {
|
|
6017
6025
|
// Validate and normalize the configuration
|
|
6018
6026
|
validateConfig(config);
|
|
6019
6027
|
const hasSecretAuth = hasSecretConfig(config);
|
|
@@ -6026,7 +6034,7 @@ _UiPath_config = new WeakMap(), _UiPath_authService = new WeakMap(), _UiPath_ini
|
|
|
6026
6034
|
secret: hasSecretAuth ? config.secret : undefined,
|
|
6027
6035
|
clientId: hasOAuthAuth ? config.clientId : undefined,
|
|
6028
6036
|
redirectUri: hasOAuthAuth ? config.redirectUri : undefined,
|
|
6029
|
-
scope: hasOAuthAuth ? config.scope : undefined
|
|
6037
|
+
scope: hasOAuthAuth ? config.scope : undefined,
|
|
6030
6038
|
});
|
|
6031
6039
|
const executionContext = new ExecutionContext();
|
|
6032
6040
|
__classPrivateFieldSet(this, _UiPath_authService, new AuthService(internalConfig, executionContext), "f");
|
|
@@ -6034,11 +6042,14 @@ _UiPath_config = new WeakMap(), _UiPath_authService = new WeakMap(), _UiPath_ini
|
|
|
6034
6042
|
__classPrivateFieldGet(this, _UiPath_authService, "f").setMultiLogin();
|
|
6035
6043
|
}
|
|
6036
6044
|
__classPrivateFieldSet(this, _UiPath_config, internalConfig, "f");
|
|
6037
|
-
// Store internals in SDKInternalsRegistry (not visible on instance)
|
|
6045
|
+
// Store internals in SDKInternalsRegistry (not visible on instance).
|
|
6046
|
+
// `folderKey` is meta-tag-only — kept off `UiPathConfig` (which mirrors
|
|
6047
|
+
// user-passed values) and lives here on the runtime registry instead.
|
|
6038
6048
|
SDKInternalsRegistry.set(this, {
|
|
6039
6049
|
config: internalConfig,
|
|
6040
6050
|
context: executionContext,
|
|
6041
|
-
tokenManager: __classPrivateFieldGet(this, _UiPath_authService, "f").getTokenManager()
|
|
6051
|
+
tokenManager: __classPrivateFieldGet(this, _UiPath_authService, "f").getTokenManager(),
|
|
6052
|
+
folderKey: __classPrivateFieldGet(this, _UiPath_metaFolderKey, "f"),
|
|
6042
6053
|
});
|
|
6043
6054
|
// Expose read-only config for user convenience
|
|
6044
6055
|
this.config = {
|
|
@@ -6066,6 +6077,7 @@ _UiPath_config = new WeakMap(), _UiPath_authService = new WeakMap(), _UiPath_ini
|
|
|
6066
6077
|
}, _UiPath_loadConfig = function _UiPath_loadConfig() {
|
|
6067
6078
|
// Load from meta tags
|
|
6068
6079
|
const metaConfig = loadFromMetaTags();
|
|
6080
|
+
__classPrivateFieldSet(this, _UiPath_metaFolderKey, metaConfig?.folderKey, "f");
|
|
6069
6081
|
// Merge with any partial config from constructor (constructor overrides meta tags)
|
|
6070
6082
|
const merged = { ...metaConfig, ...__classPrivateFieldGet(this, _UiPath_partialConfig, "f") };
|
|
6071
6083
|
if (!isCompleteConfig(merged)) {
|
|
@@ -6309,6 +6321,7 @@ class ErrorFactory {
|
|
|
6309
6321
|
}
|
|
6310
6322
|
|
|
6311
6323
|
const FOLDER_KEY = 'X-UIPATH-FolderKey';
|
|
6324
|
+
const FOLDER_PATH_ENCODED = 'X-UIPATH-FolderPath-Encoded';
|
|
6312
6325
|
const FOLDER_ID = 'X-UIPATH-OrganizationUnitId';
|
|
6313
6326
|
const TRACEPARENT = 'traceparent';
|
|
6314
6327
|
const UIPATH_TRACEPARENT_ID = 'x-uipath-traceparent-id';
|
|
@@ -7441,8 +7454,9 @@ class BaseService {
|
|
|
7441
7454
|
constructor(instance, headers) {
|
|
7442
7455
|
// Private field - not visible via Object.keys() or any reflection
|
|
7443
7456
|
_BaseService_apiClient.set(this, void 0);
|
|
7444
|
-
const { config, context, tokenManager } = SDKInternalsRegistry.get(instance);
|
|
7457
|
+
const { config, context, tokenManager, folderKey } = SDKInternalsRegistry.get(instance);
|
|
7445
7458
|
__classPrivateFieldSet(this, _BaseService_apiClient, new ApiClient(config, context, tokenManager, headers ? { headers } : {}), "f");
|
|
7459
|
+
this.config = { folderKey };
|
|
7446
7460
|
}
|
|
7447
7461
|
/**
|
|
7448
7462
|
* Gets a valid authentication token, refreshing if necessary.
|
|
@@ -7804,6 +7818,17 @@ var QueryFilterOperator;
|
|
|
7804
7818
|
QueryFilterOperator["In"] = "in";
|
|
7805
7819
|
QueryFilterOperator["NotIn"] = "not in";
|
|
7806
7820
|
})(QueryFilterOperator || (QueryFilterOperator = {}));
|
|
7821
|
+
/**
|
|
7822
|
+
* Aggregate functions supported by the Data Fabric query API.
|
|
7823
|
+
*/
|
|
7824
|
+
var EntityAggregateFunction;
|
|
7825
|
+
(function (EntityAggregateFunction) {
|
|
7826
|
+
EntityAggregateFunction["Count"] = "COUNT";
|
|
7827
|
+
EntityAggregateFunction["Sum"] = "SUM";
|
|
7828
|
+
EntityAggregateFunction["Avg"] = "AVG";
|
|
7829
|
+
EntityAggregateFunction["Min"] = "MIN";
|
|
7830
|
+
EntityAggregateFunction["Max"] = "MAX";
|
|
7831
|
+
})(EntityAggregateFunction || (EntityAggregateFunction = {}));
|
|
7807
7832
|
/**
|
|
7808
7833
|
* Entity type enum
|
|
7809
7834
|
*/
|
|
@@ -8393,16 +8418,16 @@ class EntityService extends BaseService {
|
|
|
8393
8418
|
return entities;
|
|
8394
8419
|
}
|
|
8395
8420
|
/**
|
|
8396
|
-
* Queries entity records with filters, sorting, and pagination
|
|
8421
|
+
* Queries entity records with filters, sorting, aggregates, and pagination
|
|
8397
8422
|
*
|
|
8398
8423
|
* @param id - UUID of the entity
|
|
8399
|
-
* @param options - Query options including filterGroup, selectedFields, sortOptions, and pagination
|
|
8424
|
+
* @param options - Query options including filterGroup, selectedFields, sortOptions, aggregates, groupBy, and pagination
|
|
8400
8425
|
* @returns Promise resolving to {@link NonPaginatedResponse} without pagination options,
|
|
8401
8426
|
* or {@link PaginatedResponse} when `pageSize`, `cursor`, or `jumpToPage` are provided
|
|
8402
8427
|
*
|
|
8403
8428
|
* @example
|
|
8404
8429
|
* ```typescript
|
|
8405
|
-
* import { Entities, LogicalOperator, QueryFilterOperator } from '@uipath/uipath-typescript/entities';
|
|
8430
|
+
* import { Entities, LogicalOperator, QueryFilterOperator, EntityAggregateFunction } from '@uipath/uipath-typescript/entities';
|
|
8406
8431
|
*
|
|
8407
8432
|
* const entities = new Entities(sdk);
|
|
8408
8433
|
*
|
|
@@ -8426,6 +8451,23 @@ class EntityService extends BaseService {
|
|
|
8426
8451
|
* if (page1.hasNextPage) {
|
|
8427
8452
|
* const page2 = await entities.queryRecordsById("<entityId>", { cursor: page1.nextCursor });
|
|
8428
8453
|
* }
|
|
8454
|
+
*
|
|
8455
|
+
* // Aggregate: count of records per status
|
|
8456
|
+
* await entities.queryRecordsById("<entityId>", {
|
|
8457
|
+
* selectedFields: ["status"],
|
|
8458
|
+
* groupBy: ["status"],
|
|
8459
|
+
* aggregates: [
|
|
8460
|
+
* { function: EntityAggregateFunction.Count, field: "Id", alias: "total" },
|
|
8461
|
+
* ],
|
|
8462
|
+
* });
|
|
8463
|
+
*
|
|
8464
|
+
* // Aggregate: total sum and average across all records (no grouping)
|
|
8465
|
+
* await entities.queryRecordsById("<entityId>", {
|
|
8466
|
+
* aggregates: [
|
|
8467
|
+
* { function: EntityAggregateFunction.Sum, field: "amount", alias: "totalAmount" },
|
|
8468
|
+
* { function: EntityAggregateFunction.Avg, field: "amount", alias: "avgAmount" },
|
|
8469
|
+
* ],
|
|
8470
|
+
* });
|
|
8429
8471
|
* ```
|
|
8430
8472
|
*/
|
|
8431
8473
|
async queryRecordsById(id, options) {
|
|
@@ -8443,7 +8485,7 @@ class EntityService extends BaseService {
|
|
|
8443
8485
|
countParam: ENTITY_OFFSET_PARAMS.COUNT_PARAM
|
|
8444
8486
|
}
|
|
8445
8487
|
},
|
|
8446
|
-
excludeFromPrefix: ['expansionLevel', 'filterGroup', 'selectedFields', 'sortOptions']
|
|
8488
|
+
excludeFromPrefix: ['expansionLevel', 'filterGroup', 'selectedFields', 'sortOptions', 'aggregates', 'groupBy']
|
|
8447
8489
|
}, options);
|
|
8448
8490
|
}
|
|
8449
8491
|
/**
|
|
@@ -11137,6 +11179,111 @@ __decorate([
|
|
|
11137
11179
|
track('CaseInstances.GetActionTasks')
|
|
11138
11180
|
], CaseInstancesService.prototype, "getActionTasks", null);
|
|
11139
11181
|
|
|
11182
|
+
/**
|
|
11183
|
+
* Validates the `name` argument passed to a `getByName(name, ...)` method.
|
|
11184
|
+
* Trims whitespace and rejects empty/whitespace-only names.
|
|
11185
|
+
*
|
|
11186
|
+
* @param resourceType - Resource label used in error messages (e.g. 'Asset', 'Process')
|
|
11187
|
+
* @param name - Resource name to validate
|
|
11188
|
+
* @returns The trimmed name
|
|
11189
|
+
* @throws ValidationError when `name` is missing or empty after trimming
|
|
11190
|
+
*/
|
|
11191
|
+
function validateName(resourceType, name) {
|
|
11192
|
+
if (!name) {
|
|
11193
|
+
throw new ValidationError({
|
|
11194
|
+
message: `${resourceType} name is required and cannot be empty.`,
|
|
11195
|
+
});
|
|
11196
|
+
}
|
|
11197
|
+
const trimmed = name.trim();
|
|
11198
|
+
if (!trimmed) {
|
|
11199
|
+
throw new ValidationError({
|
|
11200
|
+
message: `${resourceType} name is required and cannot be empty.`,
|
|
11201
|
+
});
|
|
11202
|
+
}
|
|
11203
|
+
return trimmed;
|
|
11204
|
+
}
|
|
11205
|
+
|
|
11206
|
+
/**
|
|
11207
|
+
* Encodes a folder path for the `X-UIPATH-FolderPath-Encoded` header.
|
|
11208
|
+
*
|
|
11209
|
+
* Orchestrator decodes this header as **base64-encoded UTF-16 LE bytes**
|
|
11210
|
+
* (see `HttpHeadersProviderExtensions.GetDecoded` + `OrganizationUnitProvider`
|
|
11211
|
+
* in the Orchestrator repo, which call `Encoding.Unicode.GetString(...)`).
|
|
11212
|
+
* URL-encoding is NOT what the server expects — it must be base64-of-UTF-16-LE
|
|
11213
|
+
* bytes.
|
|
11214
|
+
*
|
|
11215
|
+
* @param folderPath - The folder path (e.g. 'Shared/Finance')
|
|
11216
|
+
* @returns Base64 string suitable for the `X-UIPATH-FolderPath-Encoded` header
|
|
11217
|
+
*/
|
|
11218
|
+
function encodeFolderPathHeader(folderPath) {
|
|
11219
|
+
// Force little-endian regardless of host byte order. `Uint16Array` viewed
|
|
11220
|
+
// as `Uint8Array` would use the host's native order — correct on LE hosts
|
|
11221
|
+
// (x86/ARM-LE) but wrong on BE hosts. `DataView.setUint16(..., true)`
|
|
11222
|
+
// pins LE.
|
|
11223
|
+
const buf = new ArrayBuffer(folderPath.length * 2);
|
|
11224
|
+
const view = new DataView(buf);
|
|
11225
|
+
for (let i = 0; i < folderPath.length; i++) {
|
|
11226
|
+
view.setUint16(i * 2, folderPath.charCodeAt(i), true);
|
|
11227
|
+
}
|
|
11228
|
+
const bytes = new Uint8Array(buf);
|
|
11229
|
+
let binary = '';
|
|
11230
|
+
for (let i = 0; i < bytes.byteLength; i++) {
|
|
11231
|
+
binary += String.fromCharCode(bytes[i]);
|
|
11232
|
+
}
|
|
11233
|
+
// btoa is browser-native; Node 16+ also has it as a global
|
|
11234
|
+
return btoa(binary);
|
|
11235
|
+
}
|
|
11236
|
+
|
|
11237
|
+
/**
|
|
11238
|
+
* Resolves folder context into the appropriate Orchestrator folder headers.
|
|
11239
|
+
*
|
|
11240
|
+
* Centralized so all folder-scoped methods (e.g. `assets.getByName`,
|
|
11241
|
+
* `processes.getByName`, future Queues/Buckets/Jobs) share one implementation.
|
|
11242
|
+
*
|
|
11243
|
+
* Each input field maps directly to its header — no auto-detection or type
|
|
11244
|
+
* coercion. When multiple fields are supplied, all corresponding headers
|
|
11245
|
+
* are forwarded and the server resolves precedence.
|
|
11246
|
+
*
|
|
11247
|
+
* Routing:
|
|
11248
|
+
* - `folderId` → `X-UIPATH-OrganizationUnitId`
|
|
11249
|
+
* - `folderKey` → `X-UIPATH-FolderKey`
|
|
11250
|
+
* - `folderPath` → `X-UIPATH-FolderPath-Encoded`
|
|
11251
|
+
* - none set + `fallbackFolderKey` → fallback used as `X-UIPATH-FolderKey`
|
|
11252
|
+
* - none set + no fallback → `ValidationError`
|
|
11253
|
+
*
|
|
11254
|
+
* @throws ValidationError when no folder context can be resolved.
|
|
11255
|
+
*/
|
|
11256
|
+
function resolveFolderHeaders(input) {
|
|
11257
|
+
const { folderId, folderKey, folderPath, resourceType, fallbackFolderKey } = input;
|
|
11258
|
+
const trimmedKey = folderKey?.trim();
|
|
11259
|
+
const trimmedPath = folderPath?.trim();
|
|
11260
|
+
const headers = {};
|
|
11261
|
+
if (folderId !== undefined) {
|
|
11262
|
+
headers[FOLDER_ID] = folderId;
|
|
11263
|
+
}
|
|
11264
|
+
if (trimmedKey) {
|
|
11265
|
+
headers[FOLDER_KEY] = trimmedKey;
|
|
11266
|
+
}
|
|
11267
|
+
if (trimmedPath) {
|
|
11268
|
+
headers[FOLDER_PATH_ENCODED] = encodeFolderPathHeader(trimmedPath);
|
|
11269
|
+
}
|
|
11270
|
+
// No explicit folder context → meta-tag fallback or error.
|
|
11271
|
+
if (Object.keys(headers).length === 0) {
|
|
11272
|
+
if (!fallbackFolderKey) {
|
|
11273
|
+
throw new ValidationError({
|
|
11274
|
+
message: `${resourceType} requires folder context: pass \`folderId\`, \`folderKey\`, or \`folderPath\`, or initialize the SDK with a folder context.`,
|
|
11275
|
+
});
|
|
11276
|
+
}
|
|
11277
|
+
headers[FOLDER_KEY] = fallbackFolderKey;
|
|
11278
|
+
}
|
|
11279
|
+
return createHeaders(headers);
|
|
11280
|
+
}
|
|
11281
|
+
|
|
11282
|
+
/**
|
|
11283
|
+
* Matches single-quote characters in OData string literals — escaped to `''`
|
|
11284
|
+
* inside the `$filter=Name eq '…'` clause built by `getByNameLookup`.
|
|
11285
|
+
*/
|
|
11286
|
+
const SINGLE_QUOTE_RE = /'/g;
|
|
11140
11287
|
/**
|
|
11141
11288
|
* Base service for services that need folder-specific functionality.
|
|
11142
11289
|
*
|
|
@@ -11170,6 +11317,68 @@ class FolderScopedService extends BaseService {
|
|
|
11170
11317
|
}
|
|
11171
11318
|
return response.data?.value;
|
|
11172
11319
|
}
|
|
11320
|
+
/**
|
|
11321
|
+
* Look up a single resource by name on a folder-scoped OData collection.
|
|
11322
|
+
*
|
|
11323
|
+
* Shared by `getByName` implementations across services (Assets, Processes, etc).
|
|
11324
|
+
* Handles:
|
|
11325
|
+
* - Name validation via `validateName`
|
|
11326
|
+
* - Folder header resolution via `resolveFolderHeaders` (folderId → ID/key
|
|
11327
|
+
* header by type, folderPath → encoded path header, falls back to
|
|
11328
|
+
* init-time `config.folderKey` from the `uipath:folder-key` meta tag)
|
|
11329
|
+
* - OData `$filter=Name eq '…'` with single-quote escaping + `$top=1`
|
|
11330
|
+
* - Empty-result → `NotFoundError` with folder context in the message
|
|
11331
|
+
*
|
|
11332
|
+
* The transform step is caller-provided because each resource has its own
|
|
11333
|
+
* PascalCase → camelCase field mapping.
|
|
11334
|
+
*
|
|
11335
|
+
* @param resourceType - Resource label used in validation + error messages (e.g. 'Asset', 'Process')
|
|
11336
|
+
* @param endpoint - Folder-scoped OData collection endpoint
|
|
11337
|
+
* @param name - Resource name to search for
|
|
11338
|
+
* @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) + OData query options (`expand`, `select`)
|
|
11339
|
+
* @param transform - Maps a raw OData item to the typed response (e.g. PascalCase → camelCase via field map)
|
|
11340
|
+
* @throws ValidationError when inputs are malformed; NotFoundError when no match
|
|
11341
|
+
*/
|
|
11342
|
+
async getByNameLookup(resourceType, endpoint, name, options, transform) {
|
|
11343
|
+
const validatedName = validateName(resourceType, name);
|
|
11344
|
+
const { folderId, folderKey, folderPath, ...queryOptions } = options;
|
|
11345
|
+
const headers = resolveFolderHeaders({
|
|
11346
|
+
folderId,
|
|
11347
|
+
folderKey,
|
|
11348
|
+
folderPath,
|
|
11349
|
+
resourceType: `${resourceType}.getByName`,
|
|
11350
|
+
fallbackFolderKey: this.config.folderKey,
|
|
11351
|
+
});
|
|
11352
|
+
const apiOptions = {
|
|
11353
|
+
...addPrefixToKeys(queryOptions, ODATA_PREFIX, Object.keys(queryOptions)),
|
|
11354
|
+
'$filter': `Name eq '${validatedName.replace(SINGLE_QUOTE_RE, "''")}'`,
|
|
11355
|
+
'$top': '1',
|
|
11356
|
+
};
|
|
11357
|
+
const response = await this.get(endpoint, {
|
|
11358
|
+
headers,
|
|
11359
|
+
params: apiOptions,
|
|
11360
|
+
});
|
|
11361
|
+
const items = response.data?.value;
|
|
11362
|
+
if (!items?.length) {
|
|
11363
|
+
const folderHint = describeFolderForError(folderId, folderKey, folderPath);
|
|
11364
|
+
throw new NotFoundError({
|
|
11365
|
+
message: `${resourceType} '${validatedName}' not found${folderHint}.`,
|
|
11366
|
+
});
|
|
11367
|
+
}
|
|
11368
|
+
return transform(items[0]);
|
|
11369
|
+
}
|
|
11370
|
+
}
|
|
11371
|
+
/** Renders the supplied folder for a NotFoundError message. */
|
|
11372
|
+
function describeFolderForError(folderId, folderKey, folderPath) {
|
|
11373
|
+
const path = folderPath?.trim();
|
|
11374
|
+
if (path)
|
|
11375
|
+
return ` in folder '${path}'`;
|
|
11376
|
+
const key = folderKey?.trim();
|
|
11377
|
+
if (key)
|
|
11378
|
+
return ` in folder (key: ${key})`;
|
|
11379
|
+
if (typeof folderId === 'number')
|
|
11380
|
+
return ` in folder (id: ${folderId})`;
|
|
11381
|
+
return '';
|
|
11173
11382
|
}
|
|
11174
11383
|
|
|
11175
11384
|
/**
|
|
@@ -11267,6 +11476,35 @@ class AssetService extends FolderScopedService {
|
|
|
11267
11476
|
const transformedAsset = transformData(pascalToCamelCaseKeys(response.data), AssetMap);
|
|
11268
11477
|
return transformedAsset;
|
|
11269
11478
|
}
|
|
11479
|
+
/**
|
|
11480
|
+
* Retrieves a single asset by name.
|
|
11481
|
+
*
|
|
11482
|
+
* @param name - Asset name to search for
|
|
11483
|
+
* @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) and optional query parameters (`expand`, `select`)
|
|
11484
|
+
* @returns Promise resolving to a single asset
|
|
11485
|
+
* {@link AssetGetResponse}
|
|
11486
|
+
* @example
|
|
11487
|
+
* ```typescript
|
|
11488
|
+
* import { Assets } from '@uipath/uipath-typescript/assets';
|
|
11489
|
+
*
|
|
11490
|
+
* const assets = new Assets(sdk);
|
|
11491
|
+
*
|
|
11492
|
+
* // By folder ID
|
|
11493
|
+
* await assets.getByName('ApiKey', { folderId: 123 });
|
|
11494
|
+
*
|
|
11495
|
+
* // By folder key (GUID)
|
|
11496
|
+
* await assets.getByName('ApiKey', { folderKey: '5f6dadf1-3677-49dc-8aca-c2999dd4b3ba' });
|
|
11497
|
+
*
|
|
11498
|
+
* // By folder path
|
|
11499
|
+
* await assets.getByName('ApiKey', { folderPath: 'Shared/Finance' });
|
|
11500
|
+
*
|
|
11501
|
+
* // With expand
|
|
11502
|
+
* await assets.getByName('ApiKey', { folderPath: 'Shared/Finance', expand: 'keyValueList' });
|
|
11503
|
+
* ```
|
|
11504
|
+
*/
|
|
11505
|
+
async getByName(name, options = {}) {
|
|
11506
|
+
return this.getByNameLookup('Asset', ASSET_ENDPOINTS.GET_BY_FOLDER, name, options, (raw) => transformData(pascalToCamelCaseKeys(raw), AssetMap));
|
|
11507
|
+
}
|
|
11270
11508
|
}
|
|
11271
11509
|
__decorate([
|
|
11272
11510
|
track('Assets.GetAll')
|
|
@@ -11274,6 +11512,9 @@ __decorate([
|
|
|
11274
11512
|
__decorate([
|
|
11275
11513
|
track('Assets.GetById')
|
|
11276
11514
|
], AssetService.prototype, "getById", null);
|
|
11515
|
+
__decorate([
|
|
11516
|
+
track('Assets.GetByName')
|
|
11517
|
+
], AssetService.prototype, "getByName", null);
|
|
11277
11518
|
|
|
11278
11519
|
/**
|
|
11279
11520
|
* Enum for Asset Value Scope
|
|
@@ -12377,7 +12618,7 @@ const ProcessMap = {
|
|
|
12377
12618
|
/**
|
|
12378
12619
|
* Service for interacting with UiPath Orchestrator Processes API
|
|
12379
12620
|
*/
|
|
12380
|
-
class ProcessService extends
|
|
12621
|
+
class ProcessService extends FolderScopedService {
|
|
12381
12622
|
/**
|
|
12382
12623
|
* Gets all processes across folders with optional filtering and folder scoping
|
|
12383
12624
|
*
|
|
@@ -12514,6 +12755,35 @@ class ProcessService extends BaseService {
|
|
|
12514
12755
|
const transformedProcess = transformData(pascalToCamelCaseKeys(response.data), ProcessMap);
|
|
12515
12756
|
return transformedProcess;
|
|
12516
12757
|
}
|
|
12758
|
+
/**
|
|
12759
|
+
* Retrieves a single process by name.
|
|
12760
|
+
*
|
|
12761
|
+
* @param name - Process name to search for
|
|
12762
|
+
* @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) and optional query parameters (`expand`, `select`)
|
|
12763
|
+
* @returns Promise resolving to a single process
|
|
12764
|
+
* {@link ProcessGetResponse}
|
|
12765
|
+
* @example
|
|
12766
|
+
* ```typescript
|
|
12767
|
+
* import { Processes } from '@uipath/uipath-typescript/processes';
|
|
12768
|
+
*
|
|
12769
|
+
* const processes = new Processes(sdk);
|
|
12770
|
+
*
|
|
12771
|
+
* // By folder ID
|
|
12772
|
+
* await processes.getByName('MyProcess', { folderId: 123 });
|
|
12773
|
+
*
|
|
12774
|
+
* // By folder key (GUID)
|
|
12775
|
+
* await processes.getByName('MyProcess', { folderKey: '5f6dadf1-3677-49dc-8aca-c2999dd4b3ba' });
|
|
12776
|
+
*
|
|
12777
|
+
* // By folder path
|
|
12778
|
+
* await processes.getByName('MyProcess', { folderPath: 'Shared/Finance' });
|
|
12779
|
+
*
|
|
12780
|
+
* // With expand
|
|
12781
|
+
* await processes.getByName('MyProcess', { folderPath: 'Shared/Finance', expand: 'entryPoints' });
|
|
12782
|
+
* ```
|
|
12783
|
+
*/
|
|
12784
|
+
async getByName(name, options = {}) {
|
|
12785
|
+
return this.getByNameLookup('Process', PROCESS_ENDPOINTS.GET_ALL, name, options, (raw) => transformData(pascalToCamelCaseKeys(raw), ProcessMap));
|
|
12786
|
+
}
|
|
12517
12787
|
}
|
|
12518
12788
|
__decorate([
|
|
12519
12789
|
track('Processes.GetAll')
|
|
@@ -12524,6 +12794,9 @@ __decorate([
|
|
|
12524
12794
|
__decorate([
|
|
12525
12795
|
track('Processes.GetById')
|
|
12526
12796
|
], ProcessService.prototype, "getById", null);
|
|
12797
|
+
__decorate([
|
|
12798
|
+
track('Processes.GetByName')
|
|
12799
|
+
], ProcessService.prototype, "getByName", null);
|
|
12527
12800
|
|
|
12528
12801
|
/**
|
|
12529
12802
|
* Maps fields for Queue entities to ensure consistent naming
|
|
@@ -13001,7 +13274,7 @@ const AgentMap = {
|
|
|
13001
13274
|
};
|
|
13002
13275
|
|
|
13003
13276
|
/**
|
|
13004
|
-
* Constants for User Service
|
|
13277
|
+
* Constants for User Settings Service
|
|
13005
13278
|
*/
|
|
13006
13279
|
/**
|
|
13007
13280
|
* Maps fields for User Settings entities to ensure consistent SDK naming
|
|
@@ -13352,4 +13625,4 @@ function getAppBase() {
|
|
|
13352
13625
|
return getMetaTagContent(UiPathMetaTags.APP_BASE) || '/';
|
|
13353
13626
|
}
|
|
13354
13627
|
|
|
13355
|
-
export { APP_NAME, AgentMap, AssetValueScope, AssetValueType, AuthenticationError, AuthorizationError, BucketOptions, CLOUD_CLIENT_ID, CLOUD_ORGANIZATION_NAME, CLOUD_REDIRECT_URI, CLOUD_ROLE_NAME, CLOUD_TENANT_NAME, CLOUD_URL, CONNECTION_STRING, CitationErrorType, ConversationMap, DEFAULT_ITEMS_FIELD, DEFAULT_PAGE_SIZE, DEFAULT_TOTAL_COUNT_FIELD, DataDirectionType, DebugMode, index as DuFramework, EntityFieldDataType, EntityType, ErrorType, EscalationActionType, EscalationRecipientScope, EscalationTriggerType, ExchangeMap, FeedbackRating, FeedbackStatus, FieldDisplayType, HttpStatus, InputStreamSpeechSensitivity, InterruptType, JobPriority, JobSourceType, JobState, JobSubState, JobType, JoinType, LogicalOperator$1 as LogicalOperator, MAX_PAGE_SIZE, MessageMap, MessageRole, NetworkError, NotFoundError, PackageSourceType, PackageType, ProcessIncidentSeverity, ProcessIncidentStatus, ProcessIncidentType, QueryFilterOperator, RateLimitError, ReferenceType, RemoteControlAccess, RobotSize, RuntimeType, SDK_LOGGER_NAME, SDK_RUN_EVENT, SDK_SERVICE_NAME, SDK_VERSION, SERVICE, SLADurationUnit, ServerError, ServerlessJobType, SortOrder, StageTaskType, StartStrategy, StopStrategy, TargetFramework, TaskActivityType, TaskPriority, TaskSlaCriteria, TaskSlaStatus, TaskSourceName, TaskStatus, TaskType, TaskUserType, UNKNOWN$1 as UNKNOWN, UiPath, UiPathError, UiPathMetaTags, UserSettingsMap, VERSION, ValidationError, createAgentWithMethods, createCaseInstanceWithMethods, createConversationWithMethods, createEntityWithMethods, createJobWithMethods, createProcessInstanceWithMethods, createProcessWithMethods, createTaskWithMethods, getAppBase, getAsset, getErrorDetails, getLimitedPageSize, isAuthenticationError, isAuthorizationError, isNetworkError, isNotFoundError, isRateLimitError, isServerError, isUiPathError, isValidationError, loadFromMetaTags, telemetryClient, track, trackEvent };
|
|
13628
|
+
export { APP_NAME, AgentMap, AssetValueScope, AssetValueType, AuthenticationError, AuthorizationError, BucketOptions, CLOUD_CLIENT_ID, CLOUD_ORGANIZATION_NAME, CLOUD_REDIRECT_URI, CLOUD_ROLE_NAME, CLOUD_TENANT_NAME, CLOUD_URL, CONNECTION_STRING, CitationErrorType, ConversationMap, DEFAULT_ITEMS_FIELD, DEFAULT_PAGE_SIZE, DEFAULT_TOTAL_COUNT_FIELD, DataDirectionType, DebugMode, index as DuFramework, EntityAggregateFunction, EntityFieldDataType, EntityType, ErrorType, EscalationActionType, EscalationRecipientScope, EscalationTriggerType, ExchangeMap, FeedbackRating, FeedbackStatus, FieldDisplayType, HttpStatus, InputStreamSpeechSensitivity, InterruptType, JobPriority, JobSourceType, JobState, JobSubState, JobType, JoinType, LogicalOperator$1 as LogicalOperator, MAX_PAGE_SIZE, MessageMap, MessageRole, NetworkError, NotFoundError, PackageSourceType, PackageType, ProcessIncidentSeverity, ProcessIncidentStatus, ProcessIncidentType, QueryFilterOperator, RateLimitError, ReferenceType, RemoteControlAccess, RobotSize, RuntimeType, SDK_LOGGER_NAME, SDK_RUN_EVENT, SDK_SERVICE_NAME, SDK_VERSION, SERVICE, SLADurationUnit, ServerError, ServerlessJobType, SortOrder, StageTaskType, StartStrategy, StopStrategy, TargetFramework, TaskActivityType, TaskPriority, TaskSlaCriteria, TaskSlaStatus, TaskSourceName, TaskStatus, TaskType, TaskUserType, UNKNOWN$1 as UNKNOWN, UiPath, UiPathError, UiPathMetaTags, UserSettingsMap, VERSION, ValidationError, createAgentWithMethods, createCaseInstanceWithMethods, createConversationWithMethods, createEntityWithMethods, createJobWithMethods, createProcessInstanceWithMethods, createProcessWithMethods, createTaskWithMethods, getAppBase, getAsset, getErrorDetails, getLimitedPageSize, isAuthenticationError, isAuthorizationError, isNetworkError, isNotFoundError, isRateLimitError, isServerError, isUiPathError, isValidationError, loadFromMetaTags, telemetryClient, track, trackEvent };
|