@uipath/vertical-solutions-tool 1.201.0-preview.115 → 1.201.0-preview.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/{tool-zacw4j6n.js → tool-qyzy93kq.js} +671 -222
- package/dist/tool.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -6876,7 +6876,7 @@ var require_src6 = __commonJS((exports) => {
|
|
|
6876
6876
|
var package_default = {
|
|
6877
6877
|
name: "@uipath/vertical-solutions-tool",
|
|
6878
6878
|
license: "MIT",
|
|
6879
|
-
version: "1.201.0-preview.
|
|
6879
|
+
version: "1.201.0-preview.122",
|
|
6880
6880
|
description: "Scaffold and generate Vertical Solution projects.",
|
|
6881
6881
|
private: false,
|
|
6882
6882
|
repository: {
|
|
@@ -6921,7 +6921,7 @@ var package_default = {
|
|
|
6921
6921
|
"@uipath/auth": "workspace:*",
|
|
6922
6922
|
"@uipath/common": "workspace:*",
|
|
6923
6923
|
"@uipath/filesystem": "workspace:*",
|
|
6924
|
-
"@uipath/uipath-typescript": "^1.
|
|
6924
|
+
"@uipath/uipath-typescript": "^1.6.1",
|
|
6925
6925
|
"@inquirer/prompts": "^8.3.2",
|
|
6926
6926
|
"@types/node": "^25.5.2",
|
|
6927
6927
|
commander: "^14.0.3",
|
|
@@ -6983,6 +6983,7 @@ var TLS_ERROR_CODES = new Set([
|
|
|
6983
6983
|
]);
|
|
6984
6984
|
var TLS_INSTRUCTIONS = "The server's TLS certificate could not be verified. Most often a " + "corporate proxy/firewall re-signs HTTPS with a root CA that Node does " + "not trust — set NODE_EXTRA_CA_CERTS to that CA's PEM file (and HTTPS_PROXY " + "if you connect through a proxy). If the certificate is instead expired or " + "its hostname does not match, fix the endpoint URL or the system clock. " + "Then retry.";
|
|
6985
6985
|
var NETWORK_INSTRUCTIONS = "Could not reach the UiPath service. Check your network connection and " + "VPN, confirm any HTTP_PROXY/HTTPS_PROXY/NO_PROXY settings are correct, " + "then retry.";
|
|
6986
|
+
var LOCAL_PERMISSION_ERROR_CODES = new Set(["EACCES", "EPERM", "EROFS"]);
|
|
6986
6987
|
// ../../node_modules/commander/esm.mjs
|
|
6987
6988
|
var import__ = __toESM(require_commander(), 1);
|
|
6988
6989
|
var {
|
|
@@ -8160,6 +8161,7 @@ var CLI_ERROR_CODES = [
|
|
|
8160
8161
|
"invalid_argument",
|
|
8161
8162
|
"authentication_required",
|
|
8162
8163
|
"permission_denied",
|
|
8164
|
+
"local_permission_denied",
|
|
8163
8165
|
"not_found",
|
|
8164
8166
|
"rate_limited",
|
|
8165
8167
|
"network_error",
|
|
@@ -8595,12 +8597,16 @@ function defaultErrorCodeForHttpStatus(status) {
|
|
|
8595
8597
|
return "server_error";
|
|
8596
8598
|
return;
|
|
8597
8599
|
}
|
|
8600
|
+
var LOCAL_PERMISSION_TEXT_PATTERN = /(?:\b|\()(?:EACCES|EPERM|EROFS)(?::\s|\))/;
|
|
8598
8601
|
function defaultErrorCodeForFailure(data) {
|
|
8599
8602
|
if (data.Result === RESULTS.Failure) {
|
|
8600
8603
|
const status = data.Context?.httpStatus ?? parseHttpStatusFromMessage(data.Message);
|
|
8601
8604
|
const errorCode = defaultErrorCodeForHttpStatus(status);
|
|
8602
8605
|
if (errorCode)
|
|
8603
8606
|
return errorCode;
|
|
8607
|
+
if (status === undefined && (LOCAL_PERMISSION_TEXT_PATTERN.test(data.Message) || LOCAL_PERMISSION_TEXT_PATTERN.test(data.Instructions))) {
|
|
8608
|
+
return "local_permission_denied";
|
|
8609
|
+
}
|
|
8604
8610
|
}
|
|
8605
8611
|
return defaultErrorCodeForResult(data.Result);
|
|
8606
8612
|
}
|
|
@@ -9103,11 +9109,10 @@ var ScreenLogger;
|
|
|
9103
9109
|
})(ScreenLogger ||= {});
|
|
9104
9110
|
// ../common/src/sdk-user-agent.ts
|
|
9105
9111
|
var sdkUserAgentHostToken = singleton("SdkUserAgentHostToken");
|
|
9106
|
-
// ../common/src/tool-provider.ts
|
|
9107
|
-
var factorySlot = singleton("PackagerFactoryProvider");
|
|
9108
|
-
var moduleSlot = singleton("ToolModuleProvider");
|
|
9109
9112
|
// ../common/src/telemetry/ship-succeeded.ts
|
|
9110
9113
|
var shippedKeysSlot = singleton("ShipSucceededDedupeKeys");
|
|
9114
|
+
// ../common/src/tool-provider.ts
|
|
9115
|
+
var factorySlot = singleton("PackagerFactoryProvider");
|
|
9111
9116
|
// ../../node_modules/@inquirer/checkbox/node_modules/@inquirer/core/dist/lib/key.js
|
|
9112
9117
|
var keybindings = ["emacs", "vim"];
|
|
9113
9118
|
var keybindingLookup = new Set(keybindings);
|
|
@@ -30908,6 +30913,9 @@ var getAuthContext = async (options = {}) => {
|
|
|
30908
30913
|
tenantName
|
|
30909
30914
|
};
|
|
30910
30915
|
};
|
|
30916
|
+
// ../auth/src/tenantSelection.ts
|
|
30917
|
+
var IDENTIFIER_STATUSES = new Set([400, 403, 404]);
|
|
30918
|
+
|
|
30911
30919
|
// ../auth/src/selectTenant.ts
|
|
30912
30920
|
var TENANT_SELECTION_REQUIRED_CODE = "TENANT_SELECTION_REQUIRED";
|
|
30913
30921
|
var INVALID_TENANT_CODE = "INVALID_TENANT";
|
|
@@ -35082,7 +35090,23 @@ var TASK_ENDPOINTS = {
|
|
|
35082
35090
|
COMPLETE_GENERIC_TASK: `${ORCHESTRATOR_BASE}/tasks/GenericTasks/CompleteTask`,
|
|
35083
35091
|
GET_TASK_FORM_BY_ID: `${ORCHESTRATOR_BASE}/forms/TaskForms/GetTaskFormById`,
|
|
35084
35092
|
GET_GENERIC_TASK_BY_ID: `${ORCHESTRATOR_BASE}/tasks/GenericTasks/GetTaskDataById`,
|
|
35085
|
-
|
|
35093
|
+
GET_GENERIC_TASK_BY_KEY: `${ORCHESTRATOR_BASE}/tasks/GenericTasks/GetTaskDataByKey`,
|
|
35094
|
+
GET_APP_TASK_BY_ID: `${ORCHESTRATOR_BASE}/tasks/AppTasks/GetAppTaskById`,
|
|
35095
|
+
SAVE_TASK_TAGS: `${ORCHESTRATOR_BASE}/tasks/GenericTasks/SaveTaskTags`,
|
|
35096
|
+
SAVE_TASK_DATA: `${ORCHESTRATOR_BASE}/tasks/GenericTasks/SaveTaskData`,
|
|
35097
|
+
SAVE_FORM_TASK_DATA: `${ORCHESTRATOR_BASE}/forms/TaskForms/SaveTaskData`,
|
|
35098
|
+
SAVE_APP_TASK_DATA: `${ORCHESTRATOR_BASE}/tasks/AppTasks/SaveAppTasksData`,
|
|
35099
|
+
EDIT_TASK_METADATA: `${ORCHESTRATOR_BASE}/odata/Tasks/UiPath.Server.Configuration.OData.EditTaskMetadata`
|
|
35100
|
+
};
|
|
35101
|
+
var TASK_CATALOG_ENDPOINTS = {
|
|
35102
|
+
GET_ALL: `${ORCHESTRATOR_BASE}/odata/TaskCatalogs`,
|
|
35103
|
+
GET_BY_ID: (id) => `${ORCHESTRATOR_BASE}/odata/TaskCatalogs(${id})`,
|
|
35104
|
+
CREATE: `${ORCHESTRATOR_BASE}/odata/TaskCatalogs/UiPath.Server.Configuration.OData.CreateTaskCatalog`,
|
|
35105
|
+
UPDATE: (id) => `${ORCHESTRATOR_BASE}/odata/TaskCatalogs(${id})/UiPath.Server.Configuration.OData.UpdateTaskCatalog`
|
|
35106
|
+
};
|
|
35107
|
+
var TASK_NOTE_ENDPOINTS = {
|
|
35108
|
+
GET_BY_TASK_ID: (taskId) => `${ORCHESTRATOR_BASE}/odata/TaskNotes/UiPath.Server.Configuration.OData.GetByTaskId(taskId=${taskId})`,
|
|
35109
|
+
CREATE: `${ORCHESTRATOR_BASE}/odata/TaskNotes/UiPath.Server.Configuration.OData.CreateTaskNote`
|
|
35086
35110
|
};
|
|
35087
35111
|
var BUCKET_ENDPOINTS = {
|
|
35088
35112
|
GET_BY_FOLDER: `${ORCHESTRATOR_BASE}/odata/Buckets`,
|
|
@@ -35109,7 +35133,11 @@ var JOB_ENDPOINTS = {
|
|
|
35109
35133
|
GET_BY_KEY: (identifier) => `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.GetByKey(identifier=${identifier})`,
|
|
35110
35134
|
STOP: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.StopJobs`,
|
|
35111
35135
|
RESUME: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.ResumeJob`,
|
|
35112
|
-
RESTART: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.RestartJob
|
|
35136
|
+
RESTART: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.RestartJob`,
|
|
35137
|
+
ATTACHMENTS: {
|
|
35138
|
+
GET_BY_JOB_KEY: `${ORCHESTRATOR_BASE}/api/JobAttachments/GetByJobKey`,
|
|
35139
|
+
LINK: `${ORCHESTRATOR_BASE}/api/JobAttachments/Post`
|
|
35140
|
+
}
|
|
35113
35141
|
};
|
|
35114
35142
|
var ASSET_ENDPOINTS = {
|
|
35115
35143
|
GET_BY_FOLDER: `${ORCHESTRATOR_BASE}/odata/Assets/UiPath.Server.Configuration.OData.GetFiltered`,
|
|
@@ -35117,7 +35145,8 @@ var ASSET_ENDPOINTS = {
|
|
|
35117
35145
|
GET_BY_ID: (id) => `${ORCHESTRATOR_BASE}/odata/Assets(${id})`
|
|
35118
35146
|
};
|
|
35119
35147
|
var ORCHESTRATOR_ATTACHMENT_ENDPOINTS = {
|
|
35120
|
-
GET_BY_ID: (id) => `${ORCHESTRATOR_BASE}/odata/Attachments(${id})
|
|
35148
|
+
GET_BY_ID: (id) => `${ORCHESTRATOR_BASE}/odata/Attachments(${id})`,
|
|
35149
|
+
CREATE: `${ORCHESTRATOR_BASE}/odata/Attachments`
|
|
35121
35150
|
};
|
|
35122
35151
|
var MAESTRO_ENDPOINTS = {
|
|
35123
35152
|
PROCESSES: {
|
|
@@ -35180,6 +35209,7 @@ var DATA_FABRIC_ENDPOINTS = {
|
|
|
35180
35209
|
DELETE: (entityId) => `${DATAFABRIC_BASE}/api/Entity/${entityId}`,
|
|
35181
35210
|
UPDATE_METADATA: (entityId) => `${DATAFABRIC_BASE}/api/Entity/${entityId}/metadata`,
|
|
35182
35211
|
QUERY_BY_ID: (entityId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/query`,
|
|
35212
|
+
QUERY_BY_NAME: (entityName) => `${DATAFABRIC_BASE}/api/EntityService/${entityName}/query`,
|
|
35183
35213
|
BULK_UPLOAD_BY_ID: (entityId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/bulk-upload`,
|
|
35184
35214
|
DOWNLOAD_ATTACHMENT: (entityId, recordId, fieldName) => `${DATAFABRIC_BASE}/api/Attachment/entity/${entityId}/${recordId}/${fieldName}`,
|
|
35185
35215
|
UPLOAD_ATTACHMENT: (entityId, recordId, fieldName) => `${DATAFABRIC_BASE}/api/Attachment/entity/${entityId}/${recordId}/${fieldName}`,
|
|
@@ -35422,7 +35452,7 @@ class EmbeddedTokenManager {
|
|
|
35422
35452
|
this.cancelRefresh?.();
|
|
35423
35453
|
}
|
|
35424
35454
|
}
|
|
35425
|
-
var SDK_VERSION = "1.
|
|
35455
|
+
var SDK_VERSION = "1.6.1";
|
|
35426
35456
|
var CLOUD_ROLE_NAME = "uipath-ts-sdk";
|
|
35427
35457
|
var SDK_SERVICE_NAME = "UiPath.TypeScript.Sdk";
|
|
35428
35458
|
var SDK_LOGGER_NAME = "uipath-ts-sdk-telemetry";
|
|
@@ -35701,11 +35731,9 @@ class TokenManager {
|
|
|
35701
35731
|
return token;
|
|
35702
35732
|
}
|
|
35703
35733
|
}
|
|
35704
|
-
var GUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
35705
35734
|
|
|
35706
35735
|
class AuthService {
|
|
35707
35736
|
constructor(config3, executionContext) {
|
|
35708
|
-
this.skipAcrValues = false;
|
|
35709
35737
|
const isCallback = AuthService.isInOAuthCallback();
|
|
35710
35738
|
const storedContext = isCallback ? AuthService.getStoredOAuthContext() : null;
|
|
35711
35739
|
if (!isCallback) {
|
|
@@ -35768,9 +35796,6 @@ class AuthService {
|
|
|
35768
35796
|
getTokenManager() {
|
|
35769
35797
|
return this.tokenManager;
|
|
35770
35798
|
}
|
|
35771
|
-
setMultiLogin() {
|
|
35772
|
-
this.skipAcrValues = true;
|
|
35773
|
-
}
|
|
35774
35799
|
async authenticate(config3) {
|
|
35775
35800
|
if (!isBrowser2) {
|
|
35776
35801
|
return false;
|
|
@@ -35886,9 +35911,6 @@ class AuthService {
|
|
|
35886
35911
|
}
|
|
35887
35912
|
}
|
|
35888
35913
|
getAuthorizationUrl(params) {
|
|
35889
|
-
const orgName = this.config.orgName;
|
|
35890
|
-
const isGuid = GUID_REGEX.test(orgName);
|
|
35891
|
-
const acrValues = isGuid ? `tenant:${orgName}` : `tenantName:${orgName}`;
|
|
35892
35914
|
const queryParams = new URLSearchParams({
|
|
35893
35915
|
response_type: "code",
|
|
35894
35916
|
client_id: params.clientId,
|
|
@@ -35898,8 +35920,7 @@ class AuthService {
|
|
|
35898
35920
|
scope: params.scope + " offline_access",
|
|
35899
35921
|
state: params.state || this.generateCodeVerifier().slice(0, 16)
|
|
35900
35922
|
});
|
|
35901
|
-
|
|
35902
|
-
return this.skipAcrValues ? authorizeUrl : `${authorizeUrl}&acr_values=${acrValues}`;
|
|
35923
|
+
return `${this.config.baseUrl}/${IDENTITY_ENDPOINTS.AUTHORIZE}?${queryParams.toString()}`;
|
|
35903
35924
|
}
|
|
35904
35925
|
async _getAccessToken(params) {
|
|
35905
35926
|
const body = new URLSearchParams({
|
|
@@ -36063,7 +36084,6 @@ var _UiPath_config;
|
|
|
36063
36084
|
var _UiPath_authService;
|
|
36064
36085
|
var _UiPath_initialized;
|
|
36065
36086
|
var _UiPath_partialConfig;
|
|
36066
|
-
var _UiPath_multiLogin;
|
|
36067
36087
|
var _UiPath_metaFolderKey;
|
|
36068
36088
|
var _UiPath_metaOrgId;
|
|
36069
36089
|
var _UiPath_metaTenantId;
|
|
@@ -36076,7 +36096,6 @@ var UiPath$1 = class UiPath {
|
|
|
36076
36096
|
_UiPath_authService.set(this, undefined);
|
|
36077
36097
|
_UiPath_initialized.set(this, false);
|
|
36078
36098
|
_UiPath_partialConfig.set(this, undefined);
|
|
36079
|
-
_UiPath_multiLogin.set(this, false);
|
|
36080
36099
|
_UiPath_metaFolderKey.set(this, undefined);
|
|
36081
36100
|
_UiPath_metaOrgId.set(this, undefined);
|
|
36082
36101
|
_UiPath_metaTenantId.set(this, undefined);
|
|
@@ -36118,10 +36137,6 @@ var UiPath$1 = class UiPath {
|
|
|
36118
36137
|
throw new Error(`Failed to initialize UiPath SDK: ${errorMessage2}`);
|
|
36119
36138
|
}
|
|
36120
36139
|
}
|
|
36121
|
-
setMultiLogin() {
|
|
36122
|
-
__classPrivateFieldSet(this, _UiPath_multiLogin, true, "f");
|
|
36123
|
-
__classPrivateFieldGet(this, _UiPath_authService, "f")?.setMultiLogin();
|
|
36124
|
-
}
|
|
36125
36140
|
isInitialized() {
|
|
36126
36141
|
return __classPrivateFieldGet(this, _UiPath_initialized, "f");
|
|
36127
36142
|
}
|
|
@@ -36168,7 +36183,7 @@ var UiPath$1 = class UiPath {
|
|
|
36168
36183
|
__classPrivateFieldGet(this, _UiPath_authService, "f")?.updateToken(tokenInfo);
|
|
36169
36184
|
}
|
|
36170
36185
|
};
|
|
36171
|
-
_UiPath_config = new WeakMap, _UiPath_authService = new WeakMap, _UiPath_initialized = new WeakMap, _UiPath_partialConfig = new WeakMap,
|
|
36186
|
+
_UiPath_config = new WeakMap, _UiPath_authService = new WeakMap, _UiPath_initialized = new WeakMap, _UiPath_partialConfig = new WeakMap, _UiPath_metaFolderKey = new WeakMap, _UiPath_metaOrgId = new WeakMap, _UiPath_metaTenantId = new WeakMap, _UiPath_instances = new WeakSet, _UiPath_initializeWithConfig = function _UiPath_initializeWithConfig2(config3) {
|
|
36172
36187
|
validateConfig(config3);
|
|
36173
36188
|
const hasSecretAuth = hasSecretConfig(config3);
|
|
36174
36189
|
const hasOAuthAuth = hasOAuthConfig(config3);
|
|
@@ -36183,9 +36198,6 @@ _UiPath_config = new WeakMap, _UiPath_authService = new WeakMap, _UiPath_initial
|
|
|
36183
36198
|
});
|
|
36184
36199
|
const executionContext = new ExecutionContext;
|
|
36185
36200
|
__classPrivateFieldSet(this, _UiPath_authService, new AuthService(internalConfig, executionContext), "f");
|
|
36186
|
-
if (__classPrivateFieldGet(this, _UiPath_multiLogin, "f")) {
|
|
36187
|
-
__classPrivateFieldGet(this, _UiPath_authService, "f").setMultiLogin();
|
|
36188
|
-
}
|
|
36189
36201
|
__classPrivateFieldSet(this, _UiPath_config, internalConfig, "f");
|
|
36190
36202
|
SDKInternalsRegistry.set(this, {
|
|
36191
36203
|
config: internalConfig,
|
|
@@ -36325,7 +36337,7 @@ class ErrorResponseParser {
|
|
|
36325
36337
|
}
|
|
36326
36338
|
async parse(response) {
|
|
36327
36339
|
try {
|
|
36328
|
-
const errorBody = await response.json();
|
|
36340
|
+
const errorBody = await response.clone().json();
|
|
36329
36341
|
const strategy = this.strategies.find((s) => s.canParse(errorBody));
|
|
36330
36342
|
return strategy.parse(errorBody, response);
|
|
36331
36343
|
} catch {
|
|
@@ -36410,22 +36422,20 @@ class ApiClient {
|
|
|
36410
36422
|
async getValidToken() {
|
|
36411
36423
|
return this.tokenManager.getValidToken();
|
|
36412
36424
|
}
|
|
36413
|
-
async getDefaultHeaders() {
|
|
36425
|
+
async getDefaultHeaders(includeDefaultContentType) {
|
|
36414
36426
|
const token = await this.getValidToken();
|
|
36415
|
-
|
|
36416
|
-
|
|
36417
|
-
"Content-Type"
|
|
36418
|
-
|
|
36419
|
-
};
|
|
36427
|
+
const base = { Authorization: `Bearer ${token}` };
|
|
36428
|
+
if (includeDefaultContentType) {
|
|
36429
|
+
base["Content-Type"] = CONTENT_TYPES.JSON;
|
|
36430
|
+
}
|
|
36431
|
+
return { ...base, ...this.clientConfig.headers };
|
|
36420
36432
|
}
|
|
36421
36433
|
async request(method, path3, options = {}) {
|
|
36422
36434
|
const normalizedPath = path3.startsWith("/") ? path3.substring(1) : path3;
|
|
36423
36435
|
const url2 = new URL(`${this.config.orgName}/${this.config.tenantName}/${normalizedPath}`, this.config.baseUrl).toString();
|
|
36424
36436
|
const isFormData = options.body instanceof FormData;
|
|
36425
|
-
const
|
|
36426
|
-
|
|
36427
|
-
delete defaultHeaders["Content-Type"];
|
|
36428
|
-
}
|
|
36437
|
+
const isBodyless = isFormData || method === "GET" || method === "HEAD";
|
|
36438
|
+
const defaultHeaders = await this.getDefaultHeaders(!isBodyless);
|
|
36429
36439
|
const traceId = crypto.randomUUID().replace(/-/g, "");
|
|
36430
36440
|
const spanId = crypto.randomUUID().replace(/-/g, "").slice(0, 16);
|
|
36431
36441
|
const traceparentValue = `00-${traceId}-${spanId}-01`;
|
|
@@ -37342,6 +37352,7 @@ var DataDirectionType;
|
|
|
37342
37352
|
var JoinType;
|
|
37343
37353
|
(function(JoinType2) {
|
|
37344
37354
|
JoinType2["LeftJoin"] = "LeftJoin";
|
|
37355
|
+
JoinType2["InnerJoin"] = "InnerJoin";
|
|
37345
37356
|
})(JoinType || (JoinType = {}));
|
|
37346
37357
|
function createParams(paramsObj = {}) {
|
|
37347
37358
|
const params = {};
|
|
@@ -37383,7 +37394,8 @@ var EntityMap = {
|
|
|
37383
37394
|
createTime: "createdTime",
|
|
37384
37395
|
updateTime: "updatedTime",
|
|
37385
37396
|
sqlType: "fieldDataType",
|
|
37386
|
-
fieldDefinition: "fieldMetaData"
|
|
37397
|
+
fieldDefinition: "fieldMetaData",
|
|
37398
|
+
isInsightsEnabled: "isAnalyticsEnabled"
|
|
37387
37399
|
};
|
|
37388
37400
|
var EntitySchemaFieldTypeMap = {
|
|
37389
37401
|
[EntityFieldDataType.UUID]: { sqlTypeName: SqlFieldType.UNIQUEIDENTIFIER, fieldDisplayType: FieldDisplayType.Basic },
|
|
@@ -37474,6 +37486,21 @@ var EntityFieldTypeMap = {
|
|
|
37474
37486
|
[SqlFieldType.MULTILINE]: EntityFieldDataType.MULTILINE_TEXT,
|
|
37475
37487
|
[SqlFieldType.MULTILINE_MAX]: EntityFieldDataType.MULTILINE_MAX
|
|
37476
37488
|
};
|
|
37489
|
+
var JOIN_TYPE_WIRE = {
|
|
37490
|
+
[JoinType.LeftJoin]: "LEFT",
|
|
37491
|
+
[JoinType.InnerJoin]: "INNER"
|
|
37492
|
+
};
|
|
37493
|
+
var qualifyJoinField = (entityName, field) => field.includes(".") ? field : `${entityName}.${field}`;
|
|
37494
|
+
function toWireJoin(join, baseEntityName) {
|
|
37495
|
+
return {
|
|
37496
|
+
type: JOIN_TYPE_WIRE[join.joinType ?? JoinType.LeftJoin],
|
|
37497
|
+
entity: join.relatedEntityName,
|
|
37498
|
+
on: {
|
|
37499
|
+
left: qualifyJoinField(join.entityName ?? baseEntityName, join.joinFieldName),
|
|
37500
|
+
right: qualifyJoinField(join.relatedEntityName, join.relatedFieldName)
|
|
37501
|
+
}
|
|
37502
|
+
};
|
|
37503
|
+
}
|
|
37477
37504
|
|
|
37478
37505
|
class EntityService extends BaseService {
|
|
37479
37506
|
async getById(id, options) {
|
|
@@ -37580,11 +37607,22 @@ class EntityService extends BaseService {
|
|
|
37580
37607
|
message: `A maximum of ${MAX_QUERY_JOINS} joins is supported per query (received ${options.joins.length})`
|
|
37581
37608
|
});
|
|
37582
37609
|
}
|
|
37610
|
+
if (options?.joins && options.joins.length > 0 && !options.selectedFields?.length && !options.aggregates?.length) {
|
|
37611
|
+
throw new ValidationError3({
|
|
37612
|
+
message: 'Join queries require selectedFields or aggregates — reference fields as "<EntityName>.<FieldName>" (e.g. "Customer.name")'
|
|
37613
|
+
});
|
|
37614
|
+
}
|
|
37583
37615
|
const { folderKey, expansionLevel, ...rest } = options ?? {};
|
|
37616
|
+
let getEndpoint = () => DATA_FABRIC_ENDPOINTS.ENTITY.QUERY_BY_ID(id);
|
|
37617
|
+
if (options?.joins && options.joins.length > 0) {
|
|
37618
|
+
const baseEntityName = await this.resolveEntityName(id, folderKey);
|
|
37619
|
+
rest.joins = options.joins.map((join) => toWireJoin(join, baseEntityName));
|
|
37620
|
+
getEndpoint = () => DATA_FABRIC_ENDPOINTS.ENTITY.QUERY_BY_NAME(baseEntityName);
|
|
37621
|
+
}
|
|
37584
37622
|
const downstreamOptions = options === undefined ? undefined : rest;
|
|
37585
37623
|
return PaginationHelpers.getAll({
|
|
37586
37624
|
serviceAccess: this.createPaginationServiceAccess(),
|
|
37587
|
-
getEndpoint
|
|
37625
|
+
getEndpoint,
|
|
37588
37626
|
method: HTTP_METHODS.POST,
|
|
37589
37627
|
headers: createHeaders({ [FOLDER_KEY]: folderKey }),
|
|
37590
37628
|
queryParams: createParams({ expansionLevel }),
|
|
@@ -37687,7 +37725,7 @@ class EntityService extends BaseService {
|
|
|
37687
37725
|
const raw = entityResponse.data;
|
|
37688
37726
|
let fields = (raw.fields ?? []).filter((f) => !f.isSystemField && !f.isPrimaryKey);
|
|
37689
37727
|
if (options.removeFields?.length) {
|
|
37690
|
-
const removeSet = new Set(options.removeFields.map((r) => r.
|
|
37728
|
+
const removeSet = new Set(options.removeFields.map((r) => r.name));
|
|
37691
37729
|
fields = fields.filter((f) => !removeSet.has(f.name));
|
|
37692
37730
|
}
|
|
37693
37731
|
if (options.updateFields?.length) {
|
|
@@ -37743,6 +37781,10 @@ class EntityService extends BaseService {
|
|
|
37743
37781
|
}
|
|
37744
37782
|
}, { headers: folderHeaders });
|
|
37745
37783
|
}
|
|
37784
|
+
async resolveEntityName(id, folderKey) {
|
|
37785
|
+
const response = await this.get(DATA_FABRIC_ENDPOINTS.ENTITY.GET_BY_ID(id), { headers: createHeaders({ [FOLDER_KEY]: folderKey }) });
|
|
37786
|
+
return transformData(response.data, EntityMap).name;
|
|
37787
|
+
}
|
|
37746
37788
|
applyFieldMappings(metadata) {
|
|
37747
37789
|
this.mapFieldTypes(metadata);
|
|
37748
37790
|
this.mapExternalFields(metadata);
|
|
@@ -37825,20 +37867,20 @@ class EntityService extends BaseService {
|
|
|
37825
37867
|
}
|
|
37826
37868
|
buildSchemaFieldPayload(field, refMeta) {
|
|
37827
37869
|
const fieldType = field.type ?? EntityFieldDataType.STRING;
|
|
37828
|
-
this.validateFieldConstraints(fieldType, field, field.
|
|
37870
|
+
this.validateFieldConstraints(fieldType, field, field.name);
|
|
37829
37871
|
const isRelationship = fieldType === EntityFieldDataType.RELATIONSHIP;
|
|
37830
37872
|
const isFile = fieldType === EntityFieldDataType.FILE;
|
|
37831
37873
|
if (isRelationship && (!field.referenceEntityId || !field.referenceFieldId)) {
|
|
37832
37874
|
throw new ValidationError3({
|
|
37833
|
-
message: `Field '${field.
|
|
37875
|
+
message: `Field '${field.name}' of type ${fieldType} requires both referenceEntityId and referenceFieldId (UUIDs of the target entity and field).`
|
|
37834
37876
|
});
|
|
37835
37877
|
}
|
|
37836
37878
|
const mapping = EntitySchemaFieldTypeMap[fieldType];
|
|
37837
37879
|
const referenceEntityBody = refMeta?.referenceEntity ?? (field.referenceEntityId === undefined ? undefined : { id: field.referenceEntityId });
|
|
37838
37880
|
const referenceChoiceSetBody = refMeta?.referenceChoiceSet;
|
|
37839
37881
|
return {
|
|
37840
|
-
name: field.
|
|
37841
|
-
displayName: field.displayName ?? field.
|
|
37882
|
+
name: field.name,
|
|
37883
|
+
displayName: field.displayName ?? field.name,
|
|
37842
37884
|
sqlType: {
|
|
37843
37885
|
name: mapping.sqlTypeName,
|
|
37844
37886
|
...this.buildSqlTypeConstraints(fieldType, field)
|
|
@@ -38657,6 +38699,13 @@ function createCaseInstanceMethods(instanceData, service) {
|
|
|
38657
38699
|
if (!instanceData.instanceId)
|
|
38658
38700
|
throw new Error("Case instance ID is undefined");
|
|
38659
38701
|
return service.getStagesSlaSummary({ caseInstanceId: instanceData.instanceId });
|
|
38702
|
+
},
|
|
38703
|
+
async getVariables(options) {
|
|
38704
|
+
if (!instanceData.instanceId)
|
|
38705
|
+
throw new Error("Case instance ID is undefined");
|
|
38706
|
+
if (!instanceData.folderKey)
|
|
38707
|
+
throw new Error("Case instance folder key is undefined");
|
|
38708
|
+
return service.getVariables(instanceData.instanceId, instanceData.folderKey, options);
|
|
38660
38709
|
}
|
|
38661
38710
|
};
|
|
38662
38711
|
}
|
|
@@ -38793,6 +38842,100 @@ class BpmnHelpers {
|
|
|
38793
38842
|
};
|
|
38794
38843
|
}
|
|
38795
38844
|
}
|
|
38845
|
+
var INPUT_OUTPUT_REGEX = /<uipath:inputOutput\s+([^/]+?)(?:\/(?:>)?|>[\s\S]*?<\/uipath:inputOutput>)/g;
|
|
38846
|
+
var BPMN_ELEMENT_REGEX = /<bpmn:\w+\s+([^>]+)/g;
|
|
38847
|
+
function getVariableSource(bpmnXml) {
|
|
38848
|
+
const elementNameMap = new Map;
|
|
38849
|
+
const elementMatches = bpmnXml.matchAll(BPMN_ELEMENT_REGEX);
|
|
38850
|
+
for (const match of elementMatches) {
|
|
38851
|
+
const attributes = match[1];
|
|
38852
|
+
const idMatch = attributes.match(/id="([^"]+)"/);
|
|
38853
|
+
const nameMatch = attributes.match(/name="([^"]+)"/);
|
|
38854
|
+
if (idMatch && nameMatch) {
|
|
38855
|
+
elementNameMap.set(idMatch[1], nameMatch[1]);
|
|
38856
|
+
}
|
|
38857
|
+
}
|
|
38858
|
+
return elementNameMap;
|
|
38859
|
+
}
|
|
38860
|
+
function parseBpmnVariables(bpmnXml) {
|
|
38861
|
+
const variableMap = new Map;
|
|
38862
|
+
const variableSourceMap = getVariableSource(bpmnXml);
|
|
38863
|
+
const inputOutputMatches = bpmnXml.matchAll(INPUT_OUTPUT_REGEX);
|
|
38864
|
+
for (const match of inputOutputMatches) {
|
|
38865
|
+
const attributes = match[1];
|
|
38866
|
+
const idMatch = attributes.match(/id="([^"]+)"/);
|
|
38867
|
+
const nameMatch = attributes.match(/name="([^"]+)"/);
|
|
38868
|
+
const typeMatch = attributes.match(/type="([^"]+)"/);
|
|
38869
|
+
const elementIdMatch = attributes.match(/elementId="([^"]+)"/);
|
|
38870
|
+
if (idMatch && nameMatch && typeMatch && elementIdMatch) {
|
|
38871
|
+
const elementId = elementIdMatch[1];
|
|
38872
|
+
const sourceName = variableSourceMap.get(elementId) || elementId;
|
|
38873
|
+
const metadata = {
|
|
38874
|
+
id: idMatch[1],
|
|
38875
|
+
name: nameMatch[1],
|
|
38876
|
+
type: typeMatch[1],
|
|
38877
|
+
elementId,
|
|
38878
|
+
source: sourceName
|
|
38879
|
+
};
|
|
38880
|
+
variableMap.set(metadata.id, metadata);
|
|
38881
|
+
}
|
|
38882
|
+
}
|
|
38883
|
+
return variableMap;
|
|
38884
|
+
}
|
|
38885
|
+
function transformGlobalVariables(globals, variableMetadata) {
|
|
38886
|
+
const enrichedGlobalVariables = [];
|
|
38887
|
+
if (globals && typeof globals === "object") {
|
|
38888
|
+
for (const [variableId, value] of Object.entries(globals)) {
|
|
38889
|
+
const metadata = variableMetadata.get(variableId);
|
|
38890
|
+
if (metadata) {
|
|
38891
|
+
enrichedGlobalVariables.push({
|
|
38892
|
+
id: metadata.id,
|
|
38893
|
+
name: metadata.name,
|
|
38894
|
+
type: metadata.type,
|
|
38895
|
+
elementId: metadata.elementId,
|
|
38896
|
+
source: metadata.source,
|
|
38897
|
+
value
|
|
38898
|
+
});
|
|
38899
|
+
}
|
|
38900
|
+
}
|
|
38901
|
+
}
|
|
38902
|
+
return enrichedGlobalVariables;
|
|
38903
|
+
}
|
|
38904
|
+
async function fetchInstanceVariables(httpGet, instanceId, folderKey, options) {
|
|
38905
|
+
const queryParams = options?.parentElementId ? { parentElementId: options.parentElementId } : undefined;
|
|
38906
|
+
const [bpmnResult, variablesResult] = await Promise.allSettled([
|
|
38907
|
+
httpGet(MAESTRO_ENDPOINTS.INSTANCES.GET_BPMN(instanceId), {
|
|
38908
|
+
headers: createHeaders({
|
|
38909
|
+
[FOLDER_KEY]: folderKey,
|
|
38910
|
+
Accept: CONTENT_TYPES.XML
|
|
38911
|
+
})
|
|
38912
|
+
}),
|
|
38913
|
+
httpGet(MAESTRO_ENDPOINTS.INSTANCES.GET_VARIABLES(instanceId), {
|
|
38914
|
+
headers: createHeaders({ [FOLDER_KEY]: folderKey }),
|
|
38915
|
+
params: queryParams
|
|
38916
|
+
})
|
|
38917
|
+
]);
|
|
38918
|
+
if (variablesResult.status === "rejected") {
|
|
38919
|
+
throw variablesResult.reason;
|
|
38920
|
+
}
|
|
38921
|
+
const response = variablesResult.value;
|
|
38922
|
+
let variableMetadata = new Map;
|
|
38923
|
+
try {
|
|
38924
|
+
if (bpmnResult.status === "rejected") {
|
|
38925
|
+
throw bpmnResult.reason;
|
|
38926
|
+
}
|
|
38927
|
+
variableMetadata = parseBpmnVariables(bpmnResult.value.data);
|
|
38928
|
+
} catch (error52) {
|
|
38929
|
+
console.warn(`Failed to fetch BPMN metadata for instance ${instanceId} :`, error52);
|
|
38930
|
+
}
|
|
38931
|
+
const enrichedGlobalVariables = transformGlobalVariables(response.data.globals, variableMetadata);
|
|
38932
|
+
return {
|
|
38933
|
+
elements: response.data.elements,
|
|
38934
|
+
globalVariables: enrichedGlobalVariables,
|
|
38935
|
+
instanceId: response.data.instanceId,
|
|
38936
|
+
parentElementId: response.data.parentElementId
|
|
38937
|
+
};
|
|
38938
|
+
}
|
|
38796
38939
|
var ProcessInstanceMap = {
|
|
38797
38940
|
startedTimeUtc: "startedTime",
|
|
38798
38941
|
completedTimeUtc: "completedTime",
|
|
@@ -38913,85 +39056,8 @@ class ProcessInstancesService extends BaseService {
|
|
|
38913
39056
|
data: response.data
|
|
38914
39057
|
};
|
|
38915
39058
|
}
|
|
38916
|
-
parseBpmnVariables(bpmnXml) {
|
|
38917
|
-
const variableMap = new Map;
|
|
38918
|
-
const variableSourceMap = this.getVariableSource(bpmnXml);
|
|
38919
|
-
const inputOutputRegex = /<uipath:inputOutput\s+([^/]+?)(?:\/(?:>)?|>[\s\S]*?<\/uipath:inputOutput>)/g;
|
|
38920
|
-
const inputOutputMatches = bpmnXml.matchAll(inputOutputRegex);
|
|
38921
|
-
for (const match of inputOutputMatches) {
|
|
38922
|
-
const attributes = match[1];
|
|
38923
|
-
const idMatch = attributes.match(/id="([^"]+)"/);
|
|
38924
|
-
const nameMatch = attributes.match(/name="([^"]+)"/);
|
|
38925
|
-
const typeMatch = attributes.match(/type="([^"]+)"/);
|
|
38926
|
-
const elementIdMatch = attributes.match(/elementId="([^"]+)"/);
|
|
38927
|
-
if (idMatch && nameMatch && typeMatch && elementIdMatch) {
|
|
38928
|
-
const elementId = elementIdMatch[1];
|
|
38929
|
-
const sourceName = variableSourceMap.get(elementId) || elementId;
|
|
38930
|
-
const metadata = {
|
|
38931
|
-
id: idMatch[1],
|
|
38932
|
-
name: nameMatch[1],
|
|
38933
|
-
type: typeMatch[1],
|
|
38934
|
-
elementId,
|
|
38935
|
-
source: sourceName
|
|
38936
|
-
};
|
|
38937
|
-
variableMap.set(metadata.id, metadata);
|
|
38938
|
-
}
|
|
38939
|
-
}
|
|
38940
|
-
return variableMap;
|
|
38941
|
-
}
|
|
38942
|
-
getVariableSource(bpmnXml) {
|
|
38943
|
-
const elementNameMap = new Map;
|
|
38944
|
-
const elementRegex = /<bpmn:\w+\s+([^>]*id="([^"]+)"[^>]*name="([^"]+)"[^>]*)/g;
|
|
38945
|
-
const elementMatches = bpmnXml.matchAll(elementRegex);
|
|
38946
|
-
for (const match of elementMatches) {
|
|
38947
|
-
const elementId = match[2];
|
|
38948
|
-
const elementName = match[3];
|
|
38949
|
-
if (elementId && elementName) {
|
|
38950
|
-
elementNameMap.set(elementId, elementName);
|
|
38951
|
-
}
|
|
38952
|
-
}
|
|
38953
|
-
return elementNameMap;
|
|
38954
|
-
}
|
|
38955
|
-
transformGlobalVariables(globals, variableMetadata) {
|
|
38956
|
-
const enrichedGlobalVariables = [];
|
|
38957
|
-
if (globals && typeof globals === "object") {
|
|
38958
|
-
for (const [variableId, value] of Object.entries(globals)) {
|
|
38959
|
-
const metadata = variableMetadata.get(variableId);
|
|
38960
|
-
if (metadata) {
|
|
38961
|
-
enrichedGlobalVariables.push({
|
|
38962
|
-
id: metadata.id,
|
|
38963
|
-
name: metadata.name,
|
|
38964
|
-
type: metadata.type,
|
|
38965
|
-
elementId: metadata.elementId,
|
|
38966
|
-
source: metadata.source,
|
|
38967
|
-
value
|
|
38968
|
-
});
|
|
38969
|
-
}
|
|
38970
|
-
}
|
|
38971
|
-
}
|
|
38972
|
-
return enrichedGlobalVariables;
|
|
38973
|
-
}
|
|
38974
39059
|
async getVariables(instanceId, folderKey, options) {
|
|
38975
|
-
|
|
38976
|
-
try {
|
|
38977
|
-
const bpmnXml = await this.getBpmn(instanceId, folderKey);
|
|
38978
|
-
variableMetadata = this.parseBpmnVariables(bpmnXml);
|
|
38979
|
-
} catch (error52) {
|
|
38980
|
-
console.warn(`Failed to fetch BPMN metadata for instance ${instanceId} :`, error52);
|
|
38981
|
-
}
|
|
38982
|
-
const queryParams = options?.parentElementId ? { parentElementId: options.parentElementId } : undefined;
|
|
38983
|
-
const response = await this.get(MAESTRO_ENDPOINTS.INSTANCES.GET_VARIABLES(instanceId), {
|
|
38984
|
-
headers: createHeaders({ [FOLDER_KEY]: folderKey }),
|
|
38985
|
-
params: queryParams
|
|
38986
|
-
});
|
|
38987
|
-
const enrichedGlobalVariables = this.transformGlobalVariables(response.data.globals, variableMetadata);
|
|
38988
|
-
const variablesResponse = {
|
|
38989
|
-
elements: response.data.elements,
|
|
38990
|
-
globalVariables: enrichedGlobalVariables,
|
|
38991
|
-
instanceId: response.data.instanceId,
|
|
38992
|
-
parentElementId: response.data.parentElementId
|
|
38993
|
-
};
|
|
38994
|
-
return variablesResponse;
|
|
39060
|
+
return fetchInstanceVariables((path3, opts) => this.get(path3, opts ?? {}), instanceId, folderKey, options);
|
|
38995
39061
|
}
|
|
38996
39062
|
async getIncidents(instanceId, folderKey) {
|
|
38997
39063
|
const rawResponse = await this.get(MAESTRO_ENDPOINTS.INCIDENTS.GET_BY_INSTANCE(instanceId), {
|
|
@@ -39313,15 +39379,141 @@ function createTaskMethods(taskData, service) {
|
|
|
39313
39379
|
data: options.data,
|
|
39314
39380
|
action: options.action
|
|
39315
39381
|
}, folderId);
|
|
39382
|
+
},
|
|
39383
|
+
async saveData(data, options) {
|
|
39384
|
+
if (!taskData.id)
|
|
39385
|
+
throw new Error("Task ID is undefined");
|
|
39386
|
+
return service.saveData(taskData.id, data, resolveTaskFolder({ ...options, type: taskData.type }, taskData.folderId));
|
|
39387
|
+
},
|
|
39388
|
+
async saveTags(tags, options) {
|
|
39389
|
+
if (!taskData.id)
|
|
39390
|
+
throw new Error("Task ID is undefined");
|
|
39391
|
+
return service.saveTags(taskData.id, tags, resolveTaskFolder(options, taskData.folderId));
|
|
39392
|
+
},
|
|
39393
|
+
async editMetadata(options) {
|
|
39394
|
+
if (!taskData.id)
|
|
39395
|
+
throw new Error("Task ID is undefined");
|
|
39396
|
+
return service.editMetadata(taskData.id, resolveTaskFolder(options, taskData.folderId));
|
|
39397
|
+
},
|
|
39398
|
+
getComments(options) {
|
|
39399
|
+
if (!taskData.id)
|
|
39400
|
+
throw new Error("Task ID is undefined");
|
|
39401
|
+
return service.getComments(taskData.id, resolveTaskFolder(options, taskData.folderId));
|
|
39402
|
+
},
|
|
39403
|
+
async createComment(text, options) {
|
|
39404
|
+
if (!taskData.id)
|
|
39405
|
+
throw new Error("Task ID is undefined");
|
|
39406
|
+
return service.createComment(taskData.id, text, resolveTaskFolder(options, taskData.folderId));
|
|
39316
39407
|
}
|
|
39317
39408
|
};
|
|
39318
39409
|
}
|
|
39410
|
+
function resolveTaskFolder(options, folderId) {
|
|
39411
|
+
if (options && (options.folderId !== undefined || options.folderKey !== undefined || options.folderPath !== undefined)) {
|
|
39412
|
+
return options;
|
|
39413
|
+
}
|
|
39414
|
+
return { ...options, folderId };
|
|
39415
|
+
}
|
|
39319
39416
|
function createTaskWithMethods(taskData, service) {
|
|
39320
39417
|
const methods = createTaskMethods(taskData, service);
|
|
39321
39418
|
return Object.assign({}, taskData, methods);
|
|
39322
39419
|
}
|
|
39420
|
+
function resolveFolderHeaders(input) {
|
|
39421
|
+
const { folderId, folderKey, folderPath, resourceType, fallbackFolderKey } = input;
|
|
39422
|
+
const trimmedKey = folderKey?.trim();
|
|
39423
|
+
const trimmedPath = folderPath?.trim();
|
|
39424
|
+
const headers = {};
|
|
39425
|
+
if (folderId !== undefined) {
|
|
39426
|
+
headers[FOLDER_ID] = folderId;
|
|
39427
|
+
}
|
|
39428
|
+
if (trimmedKey) {
|
|
39429
|
+
headers[FOLDER_KEY] = trimmedKey;
|
|
39430
|
+
}
|
|
39431
|
+
if (trimmedPath) {
|
|
39432
|
+
headers[FOLDER_PATH_ENCODED] = encodeFolderPathHeader(trimmedPath);
|
|
39433
|
+
}
|
|
39434
|
+
if (Object.keys(headers).length === 0) {
|
|
39435
|
+
if (!fallbackFolderKey) {
|
|
39436
|
+
throw new ValidationError3({
|
|
39437
|
+
message: `${resourceType} requires folder context: pass \`folderId\`, \`folderKey\`, or \`folderPath\`, or initialize the SDK with a folder context.`
|
|
39438
|
+
});
|
|
39439
|
+
}
|
|
39440
|
+
headers[FOLDER_KEY] = fallbackFolderKey;
|
|
39441
|
+
}
|
|
39442
|
+
return createHeaders(headers);
|
|
39443
|
+
}
|
|
39444
|
+
function validateName(resourceType, name) {
|
|
39445
|
+
if (!name) {
|
|
39446
|
+
throw new ValidationError3({
|
|
39447
|
+
message: `${resourceType} name is required and cannot be empty.`
|
|
39448
|
+
});
|
|
39449
|
+
}
|
|
39450
|
+
const trimmed = name.trim();
|
|
39451
|
+
if (!trimmed) {
|
|
39452
|
+
throw new ValidationError3({
|
|
39453
|
+
message: `${resourceType} name is required and cannot be empty.`
|
|
39454
|
+
});
|
|
39455
|
+
}
|
|
39456
|
+
return trimmed;
|
|
39457
|
+
}
|
|
39458
|
+
var SINGLE_QUOTE_RE = /'/g;
|
|
39459
|
+
|
|
39460
|
+
class FolderScopedService extends BaseService {
|
|
39461
|
+
async _getByFolder(endpoint, folderId, options = {}, transformFn) {
|
|
39462
|
+
const headers = createHeaders({ [FOLDER_ID]: folderId });
|
|
39463
|
+
const keysToPrefix = Object.keys(options);
|
|
39464
|
+
const apiOptions = addPrefixToKeys(options, ODATA_PREFIX, keysToPrefix);
|
|
39465
|
+
const response = await this.get(endpoint, {
|
|
39466
|
+
params: apiOptions,
|
|
39467
|
+
headers
|
|
39468
|
+
});
|
|
39469
|
+
if (transformFn) {
|
|
39470
|
+
return response.data?.value.map(transformFn);
|
|
39471
|
+
}
|
|
39472
|
+
return response.data?.value;
|
|
39473
|
+
}
|
|
39474
|
+
async getByNameLookup(resourceType, endpoint, name, options, transform3, responseFieldMap) {
|
|
39475
|
+
const validatedName = validateName(resourceType, name);
|
|
39476
|
+
const { folderId, folderKey, folderPath, ...queryOptions } = options;
|
|
39477
|
+
const headers = resolveFolderHeaders({
|
|
39478
|
+
folderId,
|
|
39479
|
+
folderKey,
|
|
39480
|
+
folderPath,
|
|
39481
|
+
resourceType: `${resourceType}.getByName`,
|
|
39482
|
+
fallbackFolderKey: this.config.folderKey
|
|
39483
|
+
});
|
|
39484
|
+
const apiFieldOptions = responseFieldMap ? transformOptions(queryOptions, responseFieldMap) : queryOptions;
|
|
39485
|
+
const apiOptions = {
|
|
39486
|
+
...addPrefixToKeys(apiFieldOptions, ODATA_PREFIX, Object.keys(apiFieldOptions)),
|
|
39487
|
+
$filter: `Name eq '${validatedName.replace(SINGLE_QUOTE_RE, "''")}'`,
|
|
39488
|
+
$top: "1"
|
|
39489
|
+
};
|
|
39490
|
+
const response = await this.get(endpoint, {
|
|
39491
|
+
headers,
|
|
39492
|
+
params: apiOptions
|
|
39493
|
+
});
|
|
39494
|
+
const items = response.data?.value;
|
|
39495
|
+
if (!items?.length) {
|
|
39496
|
+
const folderHint = describeFolderForError(folderId, folderKey, folderPath);
|
|
39497
|
+
throw new NotFoundError({
|
|
39498
|
+
message: `${resourceType} '${validatedName}' not found${folderHint}.`
|
|
39499
|
+
});
|
|
39500
|
+
}
|
|
39501
|
+
return transform3(items[0]);
|
|
39502
|
+
}
|
|
39503
|
+
}
|
|
39504
|
+
function describeFolderForError(folderId, folderKey, folderPath) {
|
|
39505
|
+
const path3 = folderPath?.trim();
|
|
39506
|
+
if (path3)
|
|
39507
|
+
return ` in folder '${path3}'`;
|
|
39508
|
+
const key = folderKey?.trim();
|
|
39509
|
+
if (key)
|
|
39510
|
+
return ` in folder (key: ${key})`;
|
|
39511
|
+
if (typeof folderId === "number")
|
|
39512
|
+
return ` in folder (id: ${folderId})`;
|
|
39513
|
+
return "";
|
|
39514
|
+
}
|
|
39323
39515
|
|
|
39324
|
-
class TaskService extends
|
|
39516
|
+
class TaskService extends FolderScopedService {
|
|
39325
39517
|
constructor() {
|
|
39326
39518
|
super(...arguments);
|
|
39327
39519
|
this.processTaskParameters = (options, folderId) => {
|
|
@@ -39464,6 +39656,113 @@ class TaskService extends BaseService {
|
|
|
39464
39656
|
data: options
|
|
39465
39657
|
};
|
|
39466
39658
|
}
|
|
39659
|
+
async getDataById(id, options) {
|
|
39660
|
+
if (!id) {
|
|
39661
|
+
throw new ValidationError3({ message: "id is required for getDataById" });
|
|
39662
|
+
}
|
|
39663
|
+
const headers = this.resolveFolder(options, "Tasks.getDataById");
|
|
39664
|
+
return this.fetchTaskData(TASK_ENDPOINTS.GET_GENERIC_TASK_BY_ID, { taskId: id }, headers);
|
|
39665
|
+
}
|
|
39666
|
+
async getDataByKey(key, options) {
|
|
39667
|
+
if (!key) {
|
|
39668
|
+
throw new ValidationError3({ message: "key is required for getDataByKey" });
|
|
39669
|
+
}
|
|
39670
|
+
const headers = this.resolveFolder(options, "Tasks.getDataByKey");
|
|
39671
|
+
return this.fetchTaskData(TASK_ENDPOINTS.GET_GENERIC_TASK_BY_KEY, { taskKey: key }, headers);
|
|
39672
|
+
}
|
|
39673
|
+
async fetchTaskData(endpoint, params, headers) {
|
|
39674
|
+
const response = await this.get(endpoint, { params, headers });
|
|
39675
|
+
const { data: userPayload, ...systemFields2 } = response.data;
|
|
39676
|
+
const transformed = transformData(systemFields2, TaskMap);
|
|
39677
|
+
const withStatus = applyDataTransforms(transformed, { field: "status", valueMap: TaskStatusMap });
|
|
39678
|
+
return { ...withStatus, data: userPayload ?? null };
|
|
39679
|
+
}
|
|
39680
|
+
async saveData(taskId, data, options) {
|
|
39681
|
+
if (!taskId) {
|
|
39682
|
+
throw new ValidationError3({ message: "taskId is required for saveData" });
|
|
39683
|
+
}
|
|
39684
|
+
const headers = this.resolveFolder(options, "Tasks.saveData");
|
|
39685
|
+
let type = options?.type;
|
|
39686
|
+
if (!type) {
|
|
39687
|
+
const task = await this.fetchTaskData(TASK_ENDPOINTS.GET_GENERIC_TASK_BY_ID, { taskId }, headers);
|
|
39688
|
+
type = task.type;
|
|
39689
|
+
}
|
|
39690
|
+
let endpoint;
|
|
39691
|
+
switch (type) {
|
|
39692
|
+
case TaskType.Form:
|
|
39693
|
+
endpoint = TASK_ENDPOINTS.SAVE_FORM_TASK_DATA;
|
|
39694
|
+
break;
|
|
39695
|
+
case TaskType.App:
|
|
39696
|
+
endpoint = TASK_ENDPOINTS.SAVE_APP_TASK_DATA;
|
|
39697
|
+
break;
|
|
39698
|
+
default:
|
|
39699
|
+
endpoint = TASK_ENDPOINTS.SAVE_TASK_DATA;
|
|
39700
|
+
break;
|
|
39701
|
+
}
|
|
39702
|
+
await this.put(endpoint, { TaskId: taskId, Data: data }, { headers });
|
|
39703
|
+
}
|
|
39704
|
+
async saveTags(taskId, tags, options) {
|
|
39705
|
+
if (!taskId) {
|
|
39706
|
+
throw new ValidationError3({ message: "taskId is required for saveTags" });
|
|
39707
|
+
}
|
|
39708
|
+
const headers = this.resolveFolder(options, "Tasks.saveTags");
|
|
39709
|
+
const body = { TaskId: taskId, Tags: tags.map((tag) => camelToPascalCaseKeys(tag)) };
|
|
39710
|
+
await this.put(TASK_ENDPOINTS.SAVE_TASK_TAGS, body, { headers });
|
|
39711
|
+
}
|
|
39712
|
+
async editMetadata(taskId, options) {
|
|
39713
|
+
if (!taskId) {
|
|
39714
|
+
throw new ValidationError3({ message: "taskId is required for editMetadata" });
|
|
39715
|
+
}
|
|
39716
|
+
const { folderId, folderKey, folderPath, expand: _expand, select: _select, unlinkTaskCatalog, ...metadata } = options ?? {};
|
|
39717
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "Tasks.editMetadata", fallbackFolderKey: this.config.folderKey });
|
|
39718
|
+
const body = { taskId, ...metadata, ...unlinkTaskCatalog !== undefined ? { unsetTaskCatalog: unlinkTaskCatalog } : {} };
|
|
39719
|
+
await this.post(TASK_ENDPOINTS.EDIT_TASK_METADATA, camelToPascalCaseKeys(body), { headers });
|
|
39720
|
+
}
|
|
39721
|
+
async getComments(taskId, options) {
|
|
39722
|
+
if (!taskId) {
|
|
39723
|
+
throw new ValidationError3({ message: "taskId is required for getComments" });
|
|
39724
|
+
}
|
|
39725
|
+
const { folderId, folderKey, folderPath, ...queryOptions } = options ?? {};
|
|
39726
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "Tasks.getComments", fallbackFolderKey: this.config.folderKey });
|
|
39727
|
+
const transformComment = (comment) => transformData(pascalToCamelCaseKeys(comment), TaskMap);
|
|
39728
|
+
const apiOptions = transformOptions(queryOptions, TaskMap);
|
|
39729
|
+
return PaginationHelpers.getAll({
|
|
39730
|
+
serviceAccess: this.createPaginationServiceAccess(),
|
|
39731
|
+
getEndpoint: () => TASK_NOTE_ENDPOINTS.GET_BY_TASK_ID(taskId),
|
|
39732
|
+
headers,
|
|
39733
|
+
transformFn: transformComment,
|
|
39734
|
+
pagination: {
|
|
39735
|
+
paginationType: PaginationType.OFFSET,
|
|
39736
|
+
itemsField: ODATA_PAGINATION.ITEMS_FIELD,
|
|
39737
|
+
totalCountField: ODATA_PAGINATION.TOTAL_COUNT_FIELD,
|
|
39738
|
+
paginationParams: {
|
|
39739
|
+
pageSizeParam: ODATA_OFFSET_PARAMS.PAGE_SIZE_PARAM,
|
|
39740
|
+
offsetParam: ODATA_OFFSET_PARAMS.OFFSET_PARAM,
|
|
39741
|
+
countParam: ODATA_OFFSET_PARAMS.COUNT_PARAM
|
|
39742
|
+
}
|
|
39743
|
+
}
|
|
39744
|
+
}, apiOptions);
|
|
39745
|
+
}
|
|
39746
|
+
async createComment(taskId, text, options) {
|
|
39747
|
+
if (!taskId) {
|
|
39748
|
+
throw new ValidationError3({ message: "taskId is required for createComment" });
|
|
39749
|
+
}
|
|
39750
|
+
if (!text) {
|
|
39751
|
+
throw new ValidationError3({ message: "text is required for createComment" });
|
|
39752
|
+
}
|
|
39753
|
+
const headers = this.resolveFolder(options, "Tasks.createComment");
|
|
39754
|
+
const response = await this.post(TASK_NOTE_ENDPOINTS.CREATE, camelToPascalCaseKeys({ taskId, text }), { headers });
|
|
39755
|
+
return transformData(pascalToCamelCaseKeys(response.data), TaskMap);
|
|
39756
|
+
}
|
|
39757
|
+
resolveFolder(options, resourceType) {
|
|
39758
|
+
return resolveFolderHeaders({
|
|
39759
|
+
folderId: options?.folderId,
|
|
39760
|
+
folderKey: options?.folderKey,
|
|
39761
|
+
folderPath: options?.folderPath,
|
|
39762
|
+
resourceType,
|
|
39763
|
+
fallbackFolderKey: this.config.folderKey
|
|
39764
|
+
});
|
|
39765
|
+
}
|
|
39467
39766
|
getByTaskType(id, folderId, taskType, options = {}) {
|
|
39468
39767
|
const endpoint = TASK_TYPE_ENDPOINTS[taskType];
|
|
39469
39768
|
const extraParams = taskType === TaskType.Form ? { expandOnFormLayout: true, ...options } : options;
|
|
@@ -39511,6 +39810,27 @@ __decorate([
|
|
|
39511
39810
|
__decorate([
|
|
39512
39811
|
track("Tasks.Complete")
|
|
39513
39812
|
], TaskService.prototype, "complete", null);
|
|
39813
|
+
__decorate([
|
|
39814
|
+
track("Tasks.GetDataById")
|
|
39815
|
+
], TaskService.prototype, "getDataById", null);
|
|
39816
|
+
__decorate([
|
|
39817
|
+
track("Tasks.GetDataByKey")
|
|
39818
|
+
], TaskService.prototype, "getDataByKey", null);
|
|
39819
|
+
__decorate([
|
|
39820
|
+
track("Tasks.SaveData")
|
|
39821
|
+
], TaskService.prototype, "saveData", null);
|
|
39822
|
+
__decorate([
|
|
39823
|
+
track("Tasks.SaveTags")
|
|
39824
|
+
], TaskService.prototype, "saveTags", null);
|
|
39825
|
+
__decorate([
|
|
39826
|
+
track("Tasks.EditMetadata")
|
|
39827
|
+
], TaskService.prototype, "editMetadata", null);
|
|
39828
|
+
__decorate([
|
|
39829
|
+
track("Tasks.GetComments")
|
|
39830
|
+
], TaskService.prototype, "getComments", null);
|
|
39831
|
+
__decorate([
|
|
39832
|
+
track("Tasks.CreateComment")
|
|
39833
|
+
], TaskService.prototype, "createComment", null);
|
|
39514
39834
|
|
|
39515
39835
|
class CaseInstancesService extends BaseService {
|
|
39516
39836
|
constructor(instance) {
|
|
@@ -39663,6 +39983,9 @@ class CaseInstancesService extends BaseService {
|
|
|
39663
39983
|
}
|
|
39664
39984
|
return transformedResponse;
|
|
39665
39985
|
}
|
|
39986
|
+
async getVariables(instanceId, folderKey, options) {
|
|
39987
|
+
return fetchInstanceVariables((path3, opts) => this.get(path3, opts ?? {}), instanceId, folderKey, options);
|
|
39988
|
+
}
|
|
39666
39989
|
async getStages(caseInstanceId, folderKey) {
|
|
39667
39990
|
const [executionHistoryResponse, caseJsonResponse] = await Promise.allSettled([
|
|
39668
39991
|
this.getExecutionHistory(caseInstanceId, folderKey),
|
|
@@ -39815,6 +40138,9 @@ __decorate([
|
|
|
39815
40138
|
__decorate([
|
|
39816
40139
|
track("CaseInstances.GetExecutionHistory")
|
|
39817
40140
|
], CaseInstancesService.prototype, "getExecutionHistory", null);
|
|
40141
|
+
__decorate([
|
|
40142
|
+
track("CaseInstances.GetVariables")
|
|
40143
|
+
], CaseInstancesService.prototype, "getVariables", null);
|
|
39818
40144
|
__decorate([
|
|
39819
40145
|
track("CaseInstances.GetStages")
|
|
39820
40146
|
], CaseInstancesService.prototype, "getStages", null);
|
|
@@ -39827,101 +40153,6 @@ __decorate([
|
|
|
39827
40153
|
__decorate([
|
|
39828
40154
|
track("CaseInstances.GetStagesSlaSummary")
|
|
39829
40155
|
], CaseInstancesService.prototype, "getStagesSlaSummary", null);
|
|
39830
|
-
function validateName(resourceType, name) {
|
|
39831
|
-
if (!name) {
|
|
39832
|
-
throw new ValidationError3({
|
|
39833
|
-
message: `${resourceType} name is required and cannot be empty.`
|
|
39834
|
-
});
|
|
39835
|
-
}
|
|
39836
|
-
const trimmed = name.trim();
|
|
39837
|
-
if (!trimmed) {
|
|
39838
|
-
throw new ValidationError3({
|
|
39839
|
-
message: `${resourceType} name is required and cannot be empty.`
|
|
39840
|
-
});
|
|
39841
|
-
}
|
|
39842
|
-
return trimmed;
|
|
39843
|
-
}
|
|
39844
|
-
function resolveFolderHeaders(input) {
|
|
39845
|
-
const { folderId, folderKey, folderPath, resourceType, fallbackFolderKey } = input;
|
|
39846
|
-
const trimmedKey = folderKey?.trim();
|
|
39847
|
-
const trimmedPath = folderPath?.trim();
|
|
39848
|
-
const headers = {};
|
|
39849
|
-
if (folderId !== undefined) {
|
|
39850
|
-
headers[FOLDER_ID] = folderId;
|
|
39851
|
-
}
|
|
39852
|
-
if (trimmedKey) {
|
|
39853
|
-
headers[FOLDER_KEY] = trimmedKey;
|
|
39854
|
-
}
|
|
39855
|
-
if (trimmedPath) {
|
|
39856
|
-
headers[FOLDER_PATH_ENCODED] = encodeFolderPathHeader(trimmedPath);
|
|
39857
|
-
}
|
|
39858
|
-
if (Object.keys(headers).length === 0) {
|
|
39859
|
-
if (!fallbackFolderKey) {
|
|
39860
|
-
throw new ValidationError3({
|
|
39861
|
-
message: `${resourceType} requires folder context: pass \`folderId\`, \`folderKey\`, or \`folderPath\`, or initialize the SDK with a folder context.`
|
|
39862
|
-
});
|
|
39863
|
-
}
|
|
39864
|
-
headers[FOLDER_KEY] = fallbackFolderKey;
|
|
39865
|
-
}
|
|
39866
|
-
return createHeaders(headers);
|
|
39867
|
-
}
|
|
39868
|
-
var SINGLE_QUOTE_RE = /'/g;
|
|
39869
|
-
|
|
39870
|
-
class FolderScopedService extends BaseService {
|
|
39871
|
-
async _getByFolder(endpoint, folderId, options = {}, transformFn) {
|
|
39872
|
-
const headers = createHeaders({ [FOLDER_ID]: folderId });
|
|
39873
|
-
const keysToPrefix = Object.keys(options);
|
|
39874
|
-
const apiOptions = addPrefixToKeys(options, ODATA_PREFIX, keysToPrefix);
|
|
39875
|
-
const response = await this.get(endpoint, {
|
|
39876
|
-
params: apiOptions,
|
|
39877
|
-
headers
|
|
39878
|
-
});
|
|
39879
|
-
if (transformFn) {
|
|
39880
|
-
return response.data?.value.map(transformFn);
|
|
39881
|
-
}
|
|
39882
|
-
return response.data?.value;
|
|
39883
|
-
}
|
|
39884
|
-
async getByNameLookup(resourceType, endpoint, name, options, transform3, responseFieldMap) {
|
|
39885
|
-
const validatedName = validateName(resourceType, name);
|
|
39886
|
-
const { folderId, folderKey, folderPath, ...queryOptions } = options;
|
|
39887
|
-
const headers = resolveFolderHeaders({
|
|
39888
|
-
folderId,
|
|
39889
|
-
folderKey,
|
|
39890
|
-
folderPath,
|
|
39891
|
-
resourceType: `${resourceType}.getByName`,
|
|
39892
|
-
fallbackFolderKey: this.config.folderKey
|
|
39893
|
-
});
|
|
39894
|
-
const apiFieldOptions = responseFieldMap ? transformOptions(queryOptions, responseFieldMap) : queryOptions;
|
|
39895
|
-
const apiOptions = {
|
|
39896
|
-
...addPrefixToKeys(apiFieldOptions, ODATA_PREFIX, Object.keys(apiFieldOptions)),
|
|
39897
|
-
$filter: `Name eq '${validatedName.replace(SINGLE_QUOTE_RE, "''")}'`,
|
|
39898
|
-
$top: "1"
|
|
39899
|
-
};
|
|
39900
|
-
const response = await this.get(endpoint, {
|
|
39901
|
-
headers,
|
|
39902
|
-
params: apiOptions
|
|
39903
|
-
});
|
|
39904
|
-
const items = response.data?.value;
|
|
39905
|
-
if (!items?.length) {
|
|
39906
|
-
const folderHint = describeFolderForError(folderId, folderKey, folderPath);
|
|
39907
|
-
throw new NotFoundError({
|
|
39908
|
-
message: `${resourceType} '${validatedName}' not found${folderHint}.`
|
|
39909
|
-
});
|
|
39910
|
-
}
|
|
39911
|
-
return transform3(items[0]);
|
|
39912
|
-
}
|
|
39913
|
-
}
|
|
39914
|
-
function describeFolderForError(folderId, folderKey, folderPath) {
|
|
39915
|
-
const path3 = folderPath?.trim();
|
|
39916
|
-
if (path3)
|
|
39917
|
-
return ` in folder '${path3}'`;
|
|
39918
|
-
const key = folderKey?.trim();
|
|
39919
|
-
if (key)
|
|
39920
|
-
return ` in folder (key: ${key})`;
|
|
39921
|
-
if (typeof folderId === "number")
|
|
39922
|
-
return ` in folder (id: ${folderId})`;
|
|
39923
|
-
return "";
|
|
39924
|
-
}
|
|
39925
40156
|
var AssetValueScope;
|
|
39926
40157
|
(function(AssetValueScope2) {
|
|
39927
40158
|
AssetValueScope2["Global"] = "Global";
|
|
@@ -40368,6 +40599,20 @@ function createJobMethods(jobData, service) {
|
|
|
40368
40599
|
if (!jobData.folderId)
|
|
40369
40600
|
throw new Error("Job folderId is undefined");
|
|
40370
40601
|
return service.restart(jobData.key, jobData.folderId);
|
|
40602
|
+
},
|
|
40603
|
+
async getAttachments() {
|
|
40604
|
+
if (!jobData.key)
|
|
40605
|
+
throw new Error("Job key is undefined");
|
|
40606
|
+
if (!jobData.folderId)
|
|
40607
|
+
throw new Error("Job folderId is undefined");
|
|
40608
|
+
return service.getAttachments(jobData.key, jobData.folderId);
|
|
40609
|
+
},
|
|
40610
|
+
async linkAttachment(attachmentId, options) {
|
|
40611
|
+
if (!jobData.key)
|
|
40612
|
+
throw new Error("Job key is undefined");
|
|
40613
|
+
if (!jobData.folderId)
|
|
40614
|
+
throw new Error("Job folderId is undefined");
|
|
40615
|
+
return service.linkAttachment(attachmentId, jobData.key, jobData.folderId, options);
|
|
40371
40616
|
}
|
|
40372
40617
|
};
|
|
40373
40618
|
}
|
|
@@ -40405,10 +40650,51 @@ class AttachmentService extends BaseService {
|
|
|
40405
40650
|
camelCased.blobFileAccess = transformData(camelCased.blobFileAccess, BucketMap);
|
|
40406
40651
|
return transformData(camelCased, AttachmentsMap);
|
|
40407
40652
|
}
|
|
40653
|
+
async create(name, content, options) {
|
|
40654
|
+
if (!name) {
|
|
40655
|
+
throw new ValidationError3({ message: "name is required for create" });
|
|
40656
|
+
}
|
|
40657
|
+
if (!content) {
|
|
40658
|
+
throw new ValidationError3({ message: "content is required for create" });
|
|
40659
|
+
}
|
|
40660
|
+
const response = await this.post(ORCHESTRATOR_ATTACHMENT_ENDPOINTS.CREATE, camelToPascalCaseKeys({
|
|
40661
|
+
name,
|
|
40662
|
+
jobKey: options?.jobKey,
|
|
40663
|
+
attachmentCategory: options?.category
|
|
40664
|
+
}), { headers: createHeaders({ [FOLDER_ID]: options?.folderId }) });
|
|
40665
|
+
const camelCased = pascalToCamelCaseKeys(response.data);
|
|
40666
|
+
camelCased.blobFileAccess = transformData(camelCased.blobFileAccess, BucketMap);
|
|
40667
|
+
const attachment = transformData(camelCased, AttachmentsMap);
|
|
40668
|
+
await this.uploadContent(attachment.blobFileAccess, content);
|
|
40669
|
+
const { blobFileAccess: _blobFileAccess, "@odata.context": _odataContext, ...created } = attachment;
|
|
40670
|
+
return created;
|
|
40671
|
+
}
|
|
40672
|
+
async uploadContent(blobFileAccess, content) {
|
|
40673
|
+
if (!blobFileAccess?.uri) {
|
|
40674
|
+
throw new ServerError({ message: "Attachment upload URI missing from the create response" });
|
|
40675
|
+
}
|
|
40676
|
+
const rawHeaders = blobFileAccess.headers;
|
|
40677
|
+
const requestHeaders = rawHeaders && "keys" in rawHeaders && "values" in rawHeaders ? arrayDictionaryToRecord(rawHeaders) : { ...rawHeaders };
|
|
40678
|
+
if (blobFileAccess.requiresAuth) {
|
|
40679
|
+
requestHeaders["Authorization"] = `Bearer ${await this.getValidAuthToken()}`;
|
|
40680
|
+
}
|
|
40681
|
+
const response = await fetch(blobFileAccess.uri, {
|
|
40682
|
+
method: "PUT",
|
|
40683
|
+
body: content,
|
|
40684
|
+
headers: createHeaders(requestHeaders)
|
|
40685
|
+
});
|
|
40686
|
+
if (!response.ok) {
|
|
40687
|
+
const errorInfo = await errorResponseParser.parse(response);
|
|
40688
|
+
throw ErrorFactory.createFromHttpStatus(response.status, errorInfo);
|
|
40689
|
+
}
|
|
40690
|
+
}
|
|
40408
40691
|
}
|
|
40409
40692
|
__decorate([
|
|
40410
40693
|
track("Attachments.GetById")
|
|
40411
40694
|
], AttachmentService.prototype, "getById", null);
|
|
40695
|
+
__decorate([
|
|
40696
|
+
track("Attachments.Create")
|
|
40697
|
+
], AttachmentService.prototype, "create", null);
|
|
40412
40698
|
var PackageType;
|
|
40413
40699
|
(function(PackageType2) {
|
|
40414
40700
|
PackageType2["Undefined"] = "Undefined";
|
|
@@ -40653,6 +40939,38 @@ class JobService extends FolderScopedService {
|
|
|
40653
40939
|
const rawJob = transformData(pascalToCamelCaseKeys(response.data), JobMap);
|
|
40654
40940
|
return createJobWithMethods(rawJob, this);
|
|
40655
40941
|
}
|
|
40942
|
+
async getAttachments(jobKey, folderId) {
|
|
40943
|
+
if (!jobKey) {
|
|
40944
|
+
throw new ValidationError3({ message: "jobKey is required for getAttachments" });
|
|
40945
|
+
}
|
|
40946
|
+
if (!folderId) {
|
|
40947
|
+
throw new ValidationError3({ message: "folderId is required for getAttachments" });
|
|
40948
|
+
}
|
|
40949
|
+
const response = await this.get(JOB_ENDPOINTS.ATTACHMENTS.GET_BY_JOB_KEY, {
|
|
40950
|
+
params: { jobKey },
|
|
40951
|
+
headers: createHeaders({ [FOLDER_ID]: folderId })
|
|
40952
|
+
});
|
|
40953
|
+
return transformData(response.data, JobMap);
|
|
40954
|
+
}
|
|
40955
|
+
async linkAttachment(attachmentId, jobKey, folderId, options) {
|
|
40956
|
+
if (!attachmentId) {
|
|
40957
|
+
throw new ValidationError3({ message: "attachmentId is required for linkAttachment" });
|
|
40958
|
+
}
|
|
40959
|
+
if (!jobKey) {
|
|
40960
|
+
throw new ValidationError3({ message: "jobKey is required for linkAttachment" });
|
|
40961
|
+
}
|
|
40962
|
+
if (!folderId) {
|
|
40963
|
+
throw new ValidationError3({ message: "folderId is required for linkAttachment" });
|
|
40964
|
+
}
|
|
40965
|
+
const response = await this.post(JOB_ENDPOINTS.ATTACHMENTS.LINK, {
|
|
40966
|
+
attachmentId,
|
|
40967
|
+
jobKey,
|
|
40968
|
+
category: options?.category
|
|
40969
|
+
}, {
|
|
40970
|
+
headers: createHeaders({ [FOLDER_ID]: folderId })
|
|
40971
|
+
});
|
|
40972
|
+
return transformData(response.data, JobMap);
|
|
40973
|
+
}
|
|
40656
40974
|
async downloadOutputFile(outputFileKey) {
|
|
40657
40975
|
const attachment = await this.attachmentService.getById(outputFileKey);
|
|
40658
40976
|
const blobAccess = attachment.blobFileAccess;
|
|
@@ -40728,6 +41046,12 @@ __decorate([
|
|
|
40728
41046
|
__decorate([
|
|
40729
41047
|
track("Jobs.Restart")
|
|
40730
41048
|
], JobService.prototype, "restart", null);
|
|
41049
|
+
__decorate([
|
|
41050
|
+
track("Jobs.GetAttachments")
|
|
41051
|
+
], JobService.prototype, "getAttachments", null);
|
|
41052
|
+
__decorate([
|
|
41053
|
+
track("Jobs.LinkAttachment")
|
|
41054
|
+
], JobService.prototype, "linkAttachment", null);
|
|
40731
41055
|
var JobSubState;
|
|
40732
41056
|
(function(JobSubState2) {
|
|
40733
41057
|
JobSubState2["WithFaults"] = "WITH_FAULTS";
|
|
@@ -40901,6 +41225,112 @@ __decorate([
|
|
|
40901
41225
|
__decorate([
|
|
40902
41226
|
track("Queues.GetById")
|
|
40903
41227
|
], QueueService.prototype, "getById", null);
|
|
41228
|
+
var TaskCatalogMap = {
|
|
41229
|
+
creationTime: "createdTime",
|
|
41230
|
+
lastModificationTime: "lastModifiedTime"
|
|
41231
|
+
};
|
|
41232
|
+
var TaskCatalogRetentionAction;
|
|
41233
|
+
(function(TaskCatalogRetentionAction2) {
|
|
41234
|
+
TaskCatalogRetentionAction2["Delete"] = "Delete";
|
|
41235
|
+
TaskCatalogRetentionAction2["Archive"] = "Archive";
|
|
41236
|
+
TaskCatalogRetentionAction2["None"] = "None";
|
|
41237
|
+
})(TaskCatalogRetentionAction || (TaskCatalogRetentionAction = {}));
|
|
41238
|
+
|
|
41239
|
+
class TaskCatalogService extends FolderScopedService {
|
|
41240
|
+
async getAll(options) {
|
|
41241
|
+
const { folderId, folderKey, folderPath, ...queryOptions } = options ?? {};
|
|
41242
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "TaskCatalogs.getAll", fallbackFolderKey: this.config.folderKey });
|
|
41243
|
+
const transformCatalog = (catalog) => transformData(pascalToCamelCaseKeys(catalog), TaskCatalogMap);
|
|
41244
|
+
const apiOptions = transformOptions(queryOptions, TaskCatalogMap);
|
|
41245
|
+
return PaginationHelpers.getAll({
|
|
41246
|
+
serviceAccess: this.createPaginationServiceAccess(),
|
|
41247
|
+
getEndpoint: () => TASK_CATALOG_ENDPOINTS.GET_ALL,
|
|
41248
|
+
headers,
|
|
41249
|
+
transformFn: transformCatalog,
|
|
41250
|
+
pagination: {
|
|
41251
|
+
paginationType: PaginationType.OFFSET,
|
|
41252
|
+
itemsField: ODATA_PAGINATION.ITEMS_FIELD,
|
|
41253
|
+
totalCountField: ODATA_PAGINATION.TOTAL_COUNT_FIELD,
|
|
41254
|
+
paginationParams: {
|
|
41255
|
+
pageSizeParam: ODATA_OFFSET_PARAMS.PAGE_SIZE_PARAM,
|
|
41256
|
+
offsetParam: ODATA_OFFSET_PARAMS.OFFSET_PARAM,
|
|
41257
|
+
countParam: ODATA_OFFSET_PARAMS.COUNT_PARAM
|
|
41258
|
+
}
|
|
41259
|
+
}
|
|
41260
|
+
}, apiOptions);
|
|
41261
|
+
}
|
|
41262
|
+
async getById(id, options = {}) {
|
|
41263
|
+
return this.fetchById(id, options);
|
|
41264
|
+
}
|
|
41265
|
+
async fetchById(id, options = {}) {
|
|
41266
|
+
const { folderId, folderKey, folderPath, ...queryOptions } = options;
|
|
41267
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "TaskCatalogs.getById", fallbackFolderKey: this.config.folderKey });
|
|
41268
|
+
const apiFieldOptions = transformOptions(queryOptions, TaskCatalogMap);
|
|
41269
|
+
const apiOptions = addPrefixToKeys(apiFieldOptions, ODATA_PREFIX, Object.keys(apiFieldOptions));
|
|
41270
|
+
const response = await this.get(TASK_CATALOG_ENDPOINTS.GET_BY_ID(id), { headers, params: apiOptions });
|
|
41271
|
+
return transformData(pascalToCamelCaseKeys(response.data), TaskCatalogMap);
|
|
41272
|
+
}
|
|
41273
|
+
async getByName(name, options = {}) {
|
|
41274
|
+
return this.getByNameLookup("TaskCatalog", TASK_CATALOG_ENDPOINTS.GET_ALL, name, options, (raw) => transformData(pascalToCamelCaseKeys(raw), TaskCatalogMap), TaskCatalogMap);
|
|
41275
|
+
}
|
|
41276
|
+
async create(name, options = {}) {
|
|
41277
|
+
if (!name) {
|
|
41278
|
+
throw new ValidationError3({ message: "name is required for create" });
|
|
41279
|
+
}
|
|
41280
|
+
const { folderId, folderKey, folderPath, expand: _expand, select: _select, ...fields } = options;
|
|
41281
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "TaskCatalogs.create", fallbackFolderKey: this.config.folderKey });
|
|
41282
|
+
const response = await this.post(TASK_CATALOG_ENDPOINTS.CREATE, camelToPascalCaseKeys({ name, ...fields }), { headers });
|
|
41283
|
+
return transformData(pascalToCamelCaseKeys(response.data), TaskCatalogMap);
|
|
41284
|
+
}
|
|
41285
|
+
async updateById(id, options = {}) {
|
|
41286
|
+
if (!id) {
|
|
41287
|
+
throw new ValidationError3({ message: "id is required for updateById" });
|
|
41288
|
+
}
|
|
41289
|
+
const { folderId, folderKey, folderPath } = options;
|
|
41290
|
+
const current = await this.fetchById(id, { folderId, folderKey, folderPath });
|
|
41291
|
+
return this.update(current, options);
|
|
41292
|
+
}
|
|
41293
|
+
async updateByName(name, options = {}) {
|
|
41294
|
+
if (!name) {
|
|
41295
|
+
throw new ValidationError3({ message: "name is required for updateByName" });
|
|
41296
|
+
}
|
|
41297
|
+
const { folderId, folderKey, folderPath } = options;
|
|
41298
|
+
const current = await this.getByNameLookup("TaskCatalog", TASK_CATALOG_ENDPOINTS.GET_ALL, name, { folderId, folderKey, folderPath }, (raw) => transformData(pascalToCamelCaseKeys(raw), TaskCatalogMap), TaskCatalogMap);
|
|
41299
|
+
return this.update(current, options);
|
|
41300
|
+
}
|
|
41301
|
+
async update(current, options) {
|
|
41302
|
+
const { folderId, folderKey, folderPath } = options;
|
|
41303
|
+
const headers = resolveFolderHeaders({ folderId, folderKey, folderPath, resourceType: "TaskCatalogs.update", fallbackFolderKey: this.config.folderKey });
|
|
41304
|
+
const body = camelToPascalCaseKeys({
|
|
41305
|
+
name: options.name ?? current.name,
|
|
41306
|
+
description: options.description ?? current.description,
|
|
41307
|
+
encrypted: current.encrypted,
|
|
41308
|
+
retentionAction: options.retentionAction ?? (current.retentionAction === TaskCatalogRetentionAction.None ? null : current.retentionAction),
|
|
41309
|
+
retentionPeriod: options.retentionPeriod ?? current.retentionPeriod,
|
|
41310
|
+
retentionBucketId: options.retentionBucketId ?? current.retentionBucketId,
|
|
41311
|
+
...options.tags !== undefined ? { tags: options.tags } : {}
|
|
41312
|
+
});
|
|
41313
|
+
await this.post(TASK_CATALOG_ENDPOINTS.UPDATE(current.id), body, { headers });
|
|
41314
|
+
}
|
|
41315
|
+
}
|
|
41316
|
+
__decorate([
|
|
41317
|
+
track("TaskCatalogs.GetAll")
|
|
41318
|
+
], TaskCatalogService.prototype, "getAll", null);
|
|
41319
|
+
__decorate([
|
|
41320
|
+
track("TaskCatalogs.GetById")
|
|
41321
|
+
], TaskCatalogService.prototype, "getById", null);
|
|
41322
|
+
__decorate([
|
|
41323
|
+
track("TaskCatalogs.GetByName")
|
|
41324
|
+
], TaskCatalogService.prototype, "getByName", null);
|
|
41325
|
+
__decorate([
|
|
41326
|
+
track("TaskCatalogs.Create")
|
|
41327
|
+
], TaskCatalogService.prototype, "create", null);
|
|
41328
|
+
__decorate([
|
|
41329
|
+
track("TaskCatalogs.UpdateById")
|
|
41330
|
+
], TaskCatalogService.prototype, "updateById", null);
|
|
41331
|
+
__decorate([
|
|
41332
|
+
track("TaskCatalogs.UpdateByName")
|
|
41333
|
+
], TaskCatalogService.prototype, "updateByName", null);
|
|
40904
41334
|
|
|
40905
41335
|
class UiPath2 extends UiPath$1 {
|
|
40906
41336
|
constructor() {
|
|
@@ -40949,6 +41379,14 @@ class UiPath2 extends UiPath$1 {
|
|
|
40949
41379
|
return this.getService(AssetService);
|
|
40950
41380
|
}
|
|
40951
41381
|
}
|
|
41382
|
+
var FunctionHttpMethod;
|
|
41383
|
+
(function(FunctionHttpMethod2) {
|
|
41384
|
+
FunctionHttpMethod2["Get"] = "Get";
|
|
41385
|
+
FunctionHttpMethod2["Post"] = "Post";
|
|
41386
|
+
FunctionHttpMethod2["Put"] = "Put";
|
|
41387
|
+
FunctionHttpMethod2["Patch"] = "Patch";
|
|
41388
|
+
FunctionHttpMethod2["Delete"] = "Delete";
|
|
41389
|
+
})(FunctionHttpMethod || (FunctionHttpMethod = {}));
|
|
40952
41390
|
var CommonFieldMap = {
|
|
40953
41391
|
createdAt: "createdTime",
|
|
40954
41392
|
updatedAt: "updatedTime"
|
|
@@ -41279,6 +41717,17 @@ var PolicyEvaluationResult;
|
|
|
41279
41717
|
PolicyEvaluationResult2["SimulatedAllow"] = "SimulatedAllow";
|
|
41280
41718
|
PolicyEvaluationResult2["SimulatedDeny"] = "SimulatedDeny";
|
|
41281
41719
|
})(PolicyEvaluationResult || (PolicyEvaluationResult = {}));
|
|
41720
|
+
var PlatformSettingKey;
|
|
41721
|
+
(function(PlatformSettingKey2) {
|
|
41722
|
+
PlatformSettingKey2["UserLanguage"] = "UserLanguage.Language";
|
|
41723
|
+
PlatformSettingKey2["UserLanguageDate"] = "UserLanguage.Date";
|
|
41724
|
+
PlatformSettingKey2["UserTheme"] = "UserTheme.Theme";
|
|
41725
|
+
PlatformSettingKey2["UserAccessibility"] = "UserAccessibility.Accessibility";
|
|
41726
|
+
PlatformSettingKey2["UserAlert"] = "UserAlert.AlertDuration";
|
|
41727
|
+
PlatformSettingKey2["UserCaseAppOrder"] = "UserCase.AppOrderByTenant";
|
|
41728
|
+
PlatformSettingKey2["UserCasePinnedInstancesByTenant"] = "UserCase.PinnedInstancesByTenant";
|
|
41729
|
+
PlatformSettingKey2["UserCaseInstancesTableFiltersByTenant"] = "UserCase.InstancesTableFiltersByTenant";
|
|
41730
|
+
})(PlatformSettingKey || (PlatformSettingKey = {}));
|
|
41282
41731
|
var SpanStatus;
|
|
41283
41732
|
(function(SpanStatus2) {
|
|
41284
41733
|
SpanStatus2["Unset"] = "Unset";
|
|
@@ -41877,4 +42326,4 @@ var registerCommands = async (program2) => {
|
|
|
41877
42326
|
|
|
41878
42327
|
export { Command, metadata, registerCommands };
|
|
41879
42328
|
|
|
41880
|
-
//# debugId=
|
|
42329
|
+
//# debugId=2B88BAE2C3B2D7B064756E2164756E21
|
package/dist/tool.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/vertical-solutions-tool",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "1.201.0-preview.
|
|
4
|
+
"version": "1.201.0-preview.122",
|
|
5
5
|
"description": "Scaffold and generate Vertical Solution projects.",
|
|
6
6
|
"private": false,
|
|
7
7
|
"repository": {
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"files": [
|
|
35
35
|
"dist"
|
|
36
36
|
],
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "6c56f56100be96231fccbaa59e99d64d94808d58"
|
|
38
38
|
}
|