@uipath/uipath-typescript 1.3.3 → 1.3.5

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.
Files changed (38) hide show
  1. package/dist/assets/index.cjs +8 -1
  2. package/dist/assets/index.mjs +8 -1
  3. package/dist/attachments/index.cjs +8 -1
  4. package/dist/attachments/index.mjs +8 -1
  5. package/dist/buckets/index.cjs +8 -1
  6. package/dist/buckets/index.mjs +8 -1
  7. package/dist/cases/index.cjs +8 -1
  8. package/dist/cases/index.mjs +8 -1
  9. package/dist/conversational-agent/index.cjs +8 -1
  10. package/dist/conversational-agent/index.d.ts +29 -2
  11. package/dist/conversational-agent/index.mjs +8 -1
  12. package/dist/core/index.cjs +1 -1
  13. package/dist/core/index.d.ts +1 -1
  14. package/dist/core/index.mjs +1 -1
  15. package/dist/document-understanding/index.cjs +257 -0
  16. package/dist/document-understanding/index.d.ts +1185 -0
  17. package/dist/document-understanding/index.mjs +255 -0
  18. package/dist/entities/index.cjs +277 -15
  19. package/dist/entities/index.d.ts +135 -0
  20. package/dist/entities/index.mjs +277 -15
  21. package/dist/feedback/index.cjs +8 -1
  22. package/dist/feedback/index.mjs +8 -1
  23. package/dist/index.cjs +578 -15
  24. package/dist/index.d.ts +1384 -9
  25. package/dist/index.mjs +580 -18
  26. package/dist/index.umd.js +578 -15
  27. package/dist/jobs/index.cjs +54 -1
  28. package/dist/jobs/index.d.ts +52 -0
  29. package/dist/jobs/index.mjs +54 -1
  30. package/dist/maestro-processes/index.cjs +8 -1
  31. package/dist/maestro-processes/index.mjs +8 -1
  32. package/dist/processes/index.cjs +8 -1
  33. package/dist/processes/index.mjs +8 -1
  34. package/dist/queues/index.cjs +8 -1
  35. package/dist/queues/index.mjs +8 -1
  36. package/dist/tasks/index.cjs +8 -1
  37. package/dist/tasks/index.mjs +8 -1
  38. package/package.json +12 -2
package/dist/index.umd.js CHANGED
@@ -4540,6 +4540,7 @@
4540
4540
  GET_BY_KEY: (identifier) => `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.GetByKey(identifier=${identifier})`,
4541
4541
  STOP: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.StopJobs`,
4542
4542
  RESUME: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.ResumeJob`,
4543
+ RESTART: `${ORCHESTRATOR_BASE}/odata/Jobs/UiPath.Server.Configuration.OData.RestartJob`,
4543
4544
  };
4544
4545
  /**
4545
4546
  * Orchestrator Asset Service Endpoints
@@ -4611,6 +4612,7 @@
4611
4612
  BATCH_INSERT_BY_ID: (entityId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/insert-batch`,
4612
4613
  UPDATE_RECORD_BY_ID: (entityId, recordId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/update/${recordId}`,
4613
4614
  UPDATE_BY_ID: (entityId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/update-batch`,
4615
+ DELETE_RECORD_BY_ID: (entityId, recordId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/delete/${recordId}`,
4614
4616
  DELETE_BY_ID: (entityId) => `${DATAFABRIC_BASE}/api/EntityService/entity/${entityId}/delete-batch`,
4615
4617
  UPSERT: `${DATAFABRIC_BASE}/api/Entity`,
4616
4618
  DELETE: (entityId) => `${DATAFABRIC_BASE}/api/Entity/${entityId}`,
@@ -9207,7 +9209,7 @@
9207
9209
  // Connection string placeholder that will be replaced during build
9208
9210
  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";
9209
9211
  // SDK Version placeholder
9210
- const SDK_VERSION = "1.3.3";
9212
+ const SDK_VERSION = "1.3.5";
9211
9213
  const VERSION = "Version";
9212
9214
  const SERVICE = "Service";
9213
9215
  const CLOUD_ORGANIZATION_NAME = "CloudOrganizationName";
@@ -10042,6 +10044,8 @@
10042
10044
 
10043
10045
  const FOLDER_KEY = 'X-UIPATH-FolderKey';
10044
10046
  const FOLDER_ID = 'X-UIPATH-OrganizationUnitId';
10047
+ const TRACEPARENT = 'traceparent';
10048
+ const UIPATH_TRACEPARENT_ID = 'x-uipath-traceparent-id';
10045
10049
  /**
10046
10050
  * Content type constants for HTTP requests/responses
10047
10051
  */
@@ -10095,8 +10099,13 @@
10095
10099
  if (isFormData) {
10096
10100
  delete defaultHeaders['Content-Type'];
10097
10101
  }
10102
+ const traceId = crypto.randomUUID().replace(/-/g, '');
10103
+ const spanId = crypto.randomUUID().replace(/-/g, '').slice(0, 16);
10104
+ const traceparentValue = `00-${traceId}-${spanId}-01`;
10098
10105
  const headers = {
10099
10106
  ...defaultHeaders,
10107
+ [TRACEPARENT]: traceparentValue,
10108
+ [UIPATH_TRACEPARENT_ID]: traceparentValue,
10100
10109
  ...options.headers
10101
10110
  };
10102
10111
  // Convert params to URLSearchParams
@@ -11400,6 +11409,13 @@
11400
11409
  throw new Error('Entity ID is undefined');
11401
11410
  return service.deleteRecordsById(entityData.id, recordIds, options);
11402
11411
  },
11412
+ async deleteRecord(recordId) {
11413
+ if (!entityData.id)
11414
+ throw new Error('Entity ID is undefined');
11415
+ if (!recordId)
11416
+ throw new Error('Record ID is undefined');
11417
+ return service.deleteRecordById(entityData.id, recordId);
11418
+ },
11403
11419
  async getAllRecords(options) {
11404
11420
  if (!entityData.id)
11405
11421
  throw new Error('Entity ID is undefined');
@@ -11602,6 +11618,20 @@
11602
11618
  return params;
11603
11619
  }
11604
11620
 
11621
+ /**
11622
+ * Names of the per-field SQL constraint properties (i.e. the contents of `sqlType`
11623
+ * excluding its `name`). Used internally to validate user-supplied constraints
11624
+ * against the set of constraints that each `EntityFieldDataType` accepts.
11625
+ *
11626
+ * Enum values match the corresponding property names on `EntityCreateFieldOptions`.
11627
+ */
11628
+ var EntityFieldConstraint;
11629
+ (function (EntityFieldConstraint) {
11630
+ EntityFieldConstraint["LengthLimit"] = "lengthLimit";
11631
+ EntityFieldConstraint["MaxValue"] = "maxValue";
11632
+ EntityFieldConstraint["MinValue"] = "minValue";
11633
+ EntityFieldConstraint["DecimalPrecision"] = "decimalPrecision";
11634
+ })(EntityFieldConstraint || (EntityFieldConstraint = {}));
11605
11635
  /**
11606
11636
  * Entity field data types (SQL types from API)
11607
11637
  */
@@ -11664,6 +11694,70 @@
11664
11694
  [exports.FieldDisplayType.AutoNumber]: exports.EntityFieldDataType.AUTO_NUMBER,
11665
11695
  [exports.FieldDisplayType.Relationship]: exports.EntityFieldDataType.RELATIONSHIP,
11666
11696
  };
11697
+ /**
11698
+ * Default and fixed sqlType constraint values applied when the user does not provide them.
11699
+ * The API requires these to be present on field creation — without them the field
11700
+ * is stored in an incomplete state, causing "Field type cannot be changed" errors
11701
+ * when the UI later tries to edit advanced options.
11702
+ */
11703
+ const ENTITY_FIELD_CONSTRAINT_DEFAULTS = {
11704
+ STRING_LENGTH_LIMIT: 200,
11705
+ MULTILINE_TEXT_LENGTH_LIMIT: 200,
11706
+ /** Fixed (non-overridable) length limit on DECIMAL payloads*/
11707
+ DECIMAL_LENGTH_LIMIT: 1000,
11708
+ DECIMAL_PRECISION: 2,
11709
+ /** Fixed (non-overridable) length limit for BIT (BOOLEAN) fields */
11710
+ BOOLEAN_LENGTH_LIMIT: 100,
11711
+ /** Fixed (non-overridable) length limit for DATE / DATETIMEOFFSET fields */
11712
+ DATE_LENGTH_LIMIT: 1000,
11713
+ /** Fixed (non-overridable) length limit for UNIQUEIDENTIFIER-backed FILE and RELATIONSHIP fields */
11714
+ UNIQUEIDENTIFIER_LENGTH_LIMIT: 300,
11715
+ /** Fixed (non-overridable) length limit for CHOICE_SET_MULTIPLE fields */
11716
+ CHOICE_SET_MULTIPLE_LENGTH_LIMIT: 4000,
11717
+ NUMERIC_MAX_VALUE: 1000000000000,
11718
+ NUMERIC_MIN_VALUE: -1e12,
11719
+ };
11720
+ /**
11721
+ * Per-field-type spec describing which {@link EntityFieldConstraint}s the user
11722
+ * may supply on create / update, and the inclusive value range for each.
11723
+ *
11724
+ * Source of truth: the platform's `Constants.cs` constraint table. Keys absent
11725
+ * from a type's spec are not user-configurable for that type; passing one
11726
+ * throws a `ValidationError`. Field types absent from this map (BOOLEAN, DATE,
11727
+ * DATETIME, DATETIME_WITH_TZ, FILE, RELATIONSHIP, UUID, CHOICE_SET_SINGLE,
11728
+ * CHOICE_SET_MULTIPLE, AUTO_NUMBER) accept no user-supplied constraints.
11729
+ */
11730
+ const ENTITY_FIELD_CONSTRAINT_SPEC = {
11731
+ [exports.EntityFieldDataType.STRING]: {
11732
+ [EntityFieldConstraint.LengthLimit]: { min: 1, max: 4000 },
11733
+ },
11734
+ [exports.EntityFieldDataType.MULTILINE_TEXT]: {
11735
+ [EntityFieldConstraint.LengthLimit]: { min: 1, max: 10000 },
11736
+ },
11737
+ [exports.EntityFieldDataType.INTEGER]: {
11738
+ [EntityFieldConstraint.MaxValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11739
+ [EntityFieldConstraint.MinValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11740
+ },
11741
+ [exports.EntityFieldDataType.BIG_INTEGER]: {
11742
+ [EntityFieldConstraint.MaxValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11743
+ [EntityFieldConstraint.MinValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11744
+ },
11745
+ [exports.EntityFieldDataType.DECIMAL]: {
11746
+ [EntityFieldConstraint.MaxValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11747
+ [EntityFieldConstraint.MinValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11748
+ [EntityFieldConstraint.DecimalPrecision]: { min: 0, max: 10 },
11749
+ },
11750
+ [exports.EntityFieldDataType.FLOAT]: {
11751
+ [EntityFieldConstraint.MaxValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11752
+ [EntityFieldConstraint.MinValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11753
+ [EntityFieldConstraint.DecimalPrecision]: { min: 0, max: 10 },
11754
+ },
11755
+ [exports.EntityFieldDataType.DOUBLE]: {
11756
+ [EntityFieldConstraint.MaxValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11757
+ [EntityFieldConstraint.MinValue]: { min: -Number.MAX_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER },
11758
+ [EntityFieldConstraint.DecimalPrecision]: { min: 0, max: 10 },
11759
+ },
11760
+ };
11667
11761
  /**
11668
11762
  * Maps SQL field types to friendly display names
11669
11763
  */
@@ -11952,6 +12046,8 @@
11952
12046
  /**
11953
12047
  * Deletes data from an entity by entity ID
11954
12048
  *
12049
+ * Note: Records deleted using deleteRecordsById will not trigger Data Fabric trigger events. Use {@link deleteRecordById} if you need trigger events to fire for the deleted record.
12050
+ *
11955
12051
  * @param entityId - UUID of the entity
11956
12052
  * @param recordIds - Array of record UUIDs to delete
11957
12053
  * @param options - Delete options
@@ -11979,6 +12075,27 @@
11979
12075
  });
11980
12076
  return response.data;
11981
12077
  }
12078
+ /**
12079
+ * Deletes a single record from an entity by entity ID and record ID
12080
+ *
12081
+ * Note: Data Fabric supports trigger events only on individual deletes, not on deleting multiple records.
12082
+ * Use this method if you need trigger events to fire for the deleted record.
12083
+ *
12084
+ * @param entityId - UUID of the entity
12085
+ * @param recordId - UUID of the record to delete
12086
+ * @returns Promise resolving to void on success
12087
+ * @example
12088
+ * ```typescript
12089
+ * import { Entities } from '@uipath/uipath-typescript/entities';
12090
+ *
12091
+ * const entities = new Entities(sdk);
12092
+ *
12093
+ * await entities.deleteRecordById("<entityId>", "<recordId>");
12094
+ * ```
12095
+ */
12096
+ async deleteRecordById(entityId, recordId) {
12097
+ await this.delete(DATA_FABRIC_ENDPOINTS.ENTITY.DELETE_RECORD_BY_ID(entityId, recordId));
12098
+ }
11982
12099
  /**
11983
12100
  * Gets all entities in the system
11984
12101
  *
@@ -12240,6 +12357,13 @@
12240
12357
  * { fieldName: "product_name", type: EntityFieldDataType.STRING, isRequired: true, isUnique: true },
12241
12358
  * { fieldName: "price", type: EntityFieldDataType.INTEGER, defaultValue: "0" },
12242
12359
  * ], { displayName: "Product Catalog", description: "Our product catalog", isRbacEnabled: true });
12360
+ *
12361
+ * // With advanced sqlType constraints (lengthLimit, decimalPrecision, maxValue, minValue) and defaultValue
12362
+ * const ordersId = await entities.create("orders", [
12363
+ * { fieldName: "product_name", type: EntityFieldDataType.STRING, isRequired: true, isUnique: true, lengthLimit: 500 },
12364
+ * { fieldName: "price", type: EntityFieldDataType.DECIMAL, decimalPrecision: 4, maxValue: 999999, minValue: 0 },
12365
+ * { fieldName: "quantity", type: EntityFieldDataType.INTEGER, maxValue: 10000, minValue: 1, defaultValue: "0" },
12366
+ * ]);
12243
12367
  * ```
12244
12368
  * @internal
12245
12369
  */
@@ -12313,6 +12437,17 @@
12313
12437
  * updateFields: [{ id: "<fieldId>", displayName: "Unit Price", isRequired: true }],
12314
12438
  * displayName: "Price Catalog",
12315
12439
  * });
12440
+ *
12441
+ * // Add a STRING/DECIMAL field with explicit advanced sqlType constraints and defaultValue
12442
+ * await entities.updateById("<entityId>", {
12443
+ * addFields: [
12444
+ * { fieldName: "summary", type: EntityFieldDataType.STRING, lengthLimit: 500, defaultValue: "summary" },
12445
+ * { fieldName: "amount", type: EntityFieldDataType.DECIMAL, decimalPrecision: 4, maxValue: 999999, minValue: 0 },
12446
+ * ],
12447
+ * updateFields: [
12448
+ * { id: "<fieldId>", lengthLimit: 1000 },
12449
+ * ],
12450
+ * });
12316
12451
  * ```
12317
12452
  * @internal
12318
12453
  */
@@ -12356,6 +12491,21 @@
12356
12491
  const update = updateMap.get(f.id ?? '');
12357
12492
  if (!update)
12358
12493
  return f;
12494
+ const constraintUpdate = {
12495
+ ...(update.lengthLimit !== undefined && { lengthLimit: update.lengthLimit }),
12496
+ ...(update.maxValue !== undefined && { maxValue: update.maxValue }),
12497
+ ...(update.minValue !== undefined && { minValue: update.minValue }),
12498
+ ...(update.decimalPrecision !== undefined && { decimalPrecision: update.decimalPrecision }),
12499
+ };
12500
+ const hasConstraintUpdate = Object.keys(constraintUpdate).length > 0;
12501
+ if (hasConstraintUpdate) {
12502
+ if (!f.sqlType) {
12503
+ throw new ValidationError({
12504
+ message: `Cannot update constraints on field '${f.name}' (id: ${f.id}) — the field is missing sqlType metadata in the entity definition.`,
12505
+ });
12506
+ }
12507
+ this.validateFieldConstraints(this.resolveFieldDataType(f), update, f.name);
12508
+ }
12359
12509
  return {
12360
12510
  ...f,
12361
12511
  ...(update.displayName !== undefined && { displayName: update.displayName }),
@@ -12365,6 +12515,7 @@
12365
12515
  ...(update.isRbacEnabled !== undefined && { isRbacEnabled: update.isRbacEnabled }),
12366
12516
  ...(update.isEncrypted !== undefined && { isEncrypted: update.isEncrypted }),
12367
12517
  ...(update.defaultValue !== undefined && { defaultValue: update.defaultValue }),
12518
+ ...(hasConstraintUpdate && f.sqlType && { sqlType: { ...f.sqlType, ...constraintUpdate } }),
12368
12519
  };
12369
12520
  });
12370
12521
  }
@@ -12414,24 +12565,27 @@
12414
12565
  let transformedField = transformData(field, EntityMap);
12415
12566
  // Map field type: prefer fieldDisplayType for types that share SQL types (File, ChoiceSet, AutoNumber)
12416
12567
  if (transformedField.fieldDataType?.name) {
12417
- const displayTypeMapped = transformedField.fieldDisplayType
12418
- ? FieldDisplayTypeToDataType[transformedField.fieldDisplayType]
12419
- : undefined;
12420
- if (displayTypeMapped) {
12421
- transformedField.fieldDataType.name = displayTypeMapped;
12422
- }
12423
- else {
12424
- const rawSqlTypeName = field.sqlType?.name;
12425
- const mapped = rawSqlTypeName ? EntityFieldTypeMap[rawSqlTypeName] : undefined;
12426
- if (mapped) {
12427
- transformedField.fieldDataType.name = mapped;
12428
- }
12568
+ const mapped = this.tryResolveFieldDataType(transformedField.fieldDisplayType, field.sqlType?.name);
12569
+ if (mapped) {
12570
+ transformedField.fieldDataType.name = mapped;
12429
12571
  }
12430
12572
  }
12431
12573
  this.transformNestedReferences(transformedField);
12432
12574
  return transformedField;
12433
12575
  });
12434
12576
  }
12577
+ /**
12578
+ * Resolves an {@link EntityFieldDataType} from a field's `fieldDisplayType` and
12579
+ * raw SQL type name. Prefers `fieldDisplayType` to disambiguate types that
12580
+ * share a SQL type (FILE, CHOICE_SET_*, AUTO_NUMBER, RELATIONSHIP); falls back
12581
+ * to the SQL-type-name mapping. Returns `undefined` if neither resolves.
12582
+ */
12583
+ tryResolveFieldDataType(fieldDisplayType, sqlTypeName) {
12584
+ const displayMapped = fieldDisplayType ? FieldDisplayTypeToDataType[fieldDisplayType] : undefined;
12585
+ if (displayMapped)
12586
+ return displayMapped;
12587
+ return sqlTypeName ? EntityFieldTypeMap[sqlTypeName] : undefined;
12588
+ }
12435
12589
  /**
12436
12590
  * Transforms nested reference objects in field metadata
12437
12591
  */
@@ -12472,11 +12626,16 @@
12472
12626
  /** Converts a user-facing EntityCreateFieldOptions to the raw API field payload */
12473
12627
  buildSchemaFieldPayload(field) {
12474
12628
  this.validateName(field.fieldName, 'field');
12475
- const mapping = EntitySchemaFieldTypeMap[field.type ?? exports.EntityFieldDataType.STRING];
12629
+ const fieldType = field.type ?? exports.EntityFieldDataType.STRING;
12630
+ this.validateFieldConstraints(fieldType, field, field.fieldName);
12631
+ const mapping = EntitySchemaFieldTypeMap[fieldType];
12476
12632
  return {
12477
12633
  name: field.fieldName,
12478
12634
  displayName: field.displayName ?? field.fieldName,
12479
- sqlType: { name: mapping.sqlTypeName },
12635
+ sqlType: {
12636
+ name: mapping.sqlTypeName,
12637
+ ...this.buildSqlTypeConstraints(fieldType, field),
12638
+ },
12480
12639
  fieldDisplayType: mapping.fieldDisplayType,
12481
12640
  description: field.description ?? '',
12482
12641
  isRequired: field.isRequired ?? false,
@@ -12489,6 +12648,107 @@
12489
12648
  ...(field.referenceFieldName !== undefined && { referenceFieldName: field.referenceFieldName }),
12490
12649
  };
12491
12650
  }
12651
+ /**
12652
+ * Derives the user-facing {@link EntityFieldDataType} for a field on the raw
12653
+ * API response. Throws if the field's `fieldDisplayType` and `sqlType.name`
12654
+ * are both unmappable.
12655
+ */
12656
+ resolveFieldDataType(f) {
12657
+ const mapped = this.tryResolveFieldDataType(f.fieldDisplayType, f.sqlType?.name);
12658
+ if (!mapped) {
12659
+ throw new ValidationError({
12660
+ message: `Cannot determine field type for '${f.name}' (id: ${f.id}) — sqlType '${f.sqlType?.name ?? '(missing)'}' and fieldDisplayType '${f.fieldDisplayType ?? '(missing)'}' are both unrecognized.`,
12661
+ });
12662
+ }
12663
+ return mapped;
12664
+ }
12665
+ /**
12666
+ * Validates that the user-supplied constraint properties on a field are
12667
+ * supported by the field's data type. Throws a `ValidationError` listing
12668
+ * any unsupported properties.
12669
+ */
12670
+ validateFieldConstraints(type, field, fieldName) {
12671
+ const spec = ENTITY_FIELD_CONSTRAINT_SPEC[type] ?? {};
12672
+ const supported = Object.keys(spec);
12673
+ const provided = Object.values(EntityFieldConstraint).filter(name => field[name] !== undefined);
12674
+ const unsupported = provided.filter(p => !(p in spec));
12675
+ if (unsupported.length > 0) {
12676
+ const allowedDesc = supported.length > 0 ? supported.join(', ') : 'none';
12677
+ throw new ValidationError({
12678
+ message: `Field '${fieldName}' of type ${type} does not accept ${unsupported.join(', ')}. Allowed constraints for this type: ${allowedDesc}.`,
12679
+ });
12680
+ }
12681
+ // Range check: each user-supplied constraint must be within its allowed bounds.
12682
+ for (const name of provided) {
12683
+ const range = spec[name];
12684
+ const value = field[name];
12685
+ if (range && value !== undefined && (value < range.min || value > range.max)) {
12686
+ throw new ValidationError({
12687
+ message: `Field '${fieldName}' of type ${type} has ${name} ${value} out of range [${range.min}, ${range.max}].`,
12688
+ });
12689
+ }
12690
+ }
12691
+ // Cross-field check: when both bounds are user-supplied in the same call,
12692
+ // minValue must be strictly less than maxValue.
12693
+ if (field.minValue !== undefined && field.maxValue !== undefined && field.minValue >= field.maxValue) {
12694
+ throw new ValidationError({
12695
+ message: `Field '${fieldName}' of type ${type} has minValue ${field.minValue} >= maxValue ${field.maxValue}. minValue must be strictly less than maxValue.`,
12696
+ });
12697
+ }
12698
+ }
12699
+ /**
12700
+ * Returns the sqlType constraint fields for a given field type.
12701
+ *
12702
+ * The API requires specific constraint properties to be set per SQL type;
12703
+ * without them the field is stored in an incomplete state, causing
12704
+ * "Field type cannot be changed" errors when the UI later tries to edit
12705
+ * advanced options. User-supplied values from `EntityCreateFieldOptions`
12706
+ * override the defaults where the type accepts overrides.
12707
+ */
12708
+ buildSqlTypeConstraints(type, field) {
12709
+ const defaults = ENTITY_FIELD_CONSTRAINT_DEFAULTS;
12710
+ switch (type) {
12711
+ case exports.EntityFieldDataType.STRING:
12712
+ return { lengthLimit: field.lengthLimit ?? defaults.STRING_LENGTH_LIMIT };
12713
+ case exports.EntityFieldDataType.MULTILINE_TEXT:
12714
+ return { lengthLimit: field.lengthLimit ?? defaults.MULTILINE_TEXT_LENGTH_LIMIT };
12715
+ case exports.EntityFieldDataType.DECIMAL:
12716
+ return {
12717
+ lengthLimit: defaults.DECIMAL_LENGTH_LIMIT,
12718
+ decimalPrecision: field.decimalPrecision ?? defaults.DECIMAL_PRECISION,
12719
+ maxValue: field.maxValue ?? defaults.NUMERIC_MAX_VALUE,
12720
+ minValue: field.minValue ?? defaults.NUMERIC_MIN_VALUE,
12721
+ };
12722
+ case exports.EntityFieldDataType.BOOLEAN:
12723
+ return { lengthLimit: defaults.BOOLEAN_LENGTH_LIMIT };
12724
+ case exports.EntityFieldDataType.DATE:
12725
+ case exports.EntityFieldDataType.DATETIME_WITH_TZ:
12726
+ return { lengthLimit: defaults.DATE_LENGTH_LIMIT };
12727
+ case exports.EntityFieldDataType.INTEGER:
12728
+ case exports.EntityFieldDataType.BIG_INTEGER:
12729
+ return {
12730
+ maxValue: field.maxValue ?? defaults.NUMERIC_MAX_VALUE,
12731
+ minValue: field.minValue ?? defaults.NUMERIC_MIN_VALUE,
12732
+ };
12733
+ case exports.EntityFieldDataType.FLOAT:
12734
+ case exports.EntityFieldDataType.DOUBLE:
12735
+ return {
12736
+ decimalPrecision: field.decimalPrecision ?? defaults.DECIMAL_PRECISION,
12737
+ maxValue: field.maxValue ?? defaults.NUMERIC_MAX_VALUE,
12738
+ minValue: field.minValue ?? defaults.NUMERIC_MIN_VALUE,
12739
+ };
12740
+ case exports.EntityFieldDataType.FILE:
12741
+ case exports.EntityFieldDataType.RELATIONSHIP:
12742
+ // UNIQUEIDENTIFIER fixed lengthLimit (300)
12743
+ return { lengthLimit: defaults.UNIQUEIDENTIFIER_LENGTH_LIMIT };
12744
+ case exports.EntityFieldDataType.CHOICE_SET_MULTIPLE:
12745
+ // CHOICE_SET_MULTIPLE fixed lengthLimit (4000)
12746
+ return { lengthLimit: defaults.CHOICE_SET_MULTIPLE_LENGTH_LIMIT };
12747
+ default:
12748
+ // UUID, CHOICE_SET_SINGLE, AUTO_NUMBER, DATETIME — (sqlType: { name })
12749
+ return {};
12750
+ }
12751
+ }
12492
12752
  validateName(name, context) {
12493
12753
  if (name.length < 3 || name.length > 100 || !/^[a-zA-Z]\w*$/.test(name)) {
12494
12754
  const suggestion = name.replace(/\W/g, '').replace(/^[0-9_]+/, '');
@@ -12531,6 +12791,9 @@
12531
12791
  __decorate([
12532
12792
  track('Entities.DeleteRecordsById')
12533
12793
  ], EntityService.prototype, "deleteRecordsById", null);
12794
+ __decorate([
12795
+ track('Entities.DeleteRecordById')
12796
+ ], EntityService.prototype, "deleteRecordById", null);
12534
12797
  __decorate([
12535
12798
  track('Entities.GetAll')
12536
12799
  ], EntityService.prototype, "getAll", null);
@@ -15155,6 +15418,13 @@
15155
15418
  throw new Error('Job folderId is undefined');
15156
15419
  return service.resume(jobData.key, jobData.folderId, options);
15157
15420
  },
15421
+ async restart() {
15422
+ if (!jobData.key)
15423
+ throw new Error('Job key is undefined');
15424
+ if (!jobData.folderId)
15425
+ throw new Error('Job folderId is undefined');
15426
+ return service.restart(jobData.key, jobData.folderId);
15427
+ },
15158
15428
  };
15159
15429
  }
15160
15430
  /**
@@ -15654,6 +15924,41 @@
15654
15924
  }
15655
15925
  await this.post(JOB_ENDPOINTS.RESUME, body, { headers });
15656
15926
  }
15927
+ /**
15928
+ * Restarts a job in a final state (Successful, Faulted, or Stopped).
15929
+ *
15930
+ * Creates a **new** job execution from a previously successful, faulted, or stopped job.
15931
+ * The new job has its own unique `key`, starts in `Pending` state, and uses
15932
+ * the same process and input arguments as the original job.
15933
+ *
15934
+ * To monitor the new job's progress, poll with {@link getById}
15935
+ * using the returned job's key until the state reaches a final value.
15936
+ *
15937
+ * @param jobKey - The unique key (GUID) of the job to restart
15938
+ * @param folderId - The folder ID where the job resides
15939
+ * @returns Promise resolving to the new {@link JobGetResponse} with full job details
15940
+ *
15941
+ * @example
15942
+ * ```typescript
15943
+ * // Restart a faulted job
15944
+ * const newJob = await jobs.restart(<jobKey>, <folderId>);
15945
+ * console.log(newJob.state); // 'Pending'
15946
+ * console.log(newJob.key); // new job key (different from original)
15947
+ * ```
15948
+ */
15949
+ async restart(jobKey, folderId) {
15950
+ if (!jobKey) {
15951
+ throw new ValidationError({ message: 'jobKey is required for restart' });
15952
+ }
15953
+ if (!folderId) {
15954
+ throw new ValidationError({ message: 'folderId is required for restart' });
15955
+ }
15956
+ const [jobId] = await this.resolveJobKeys([jobKey], folderId);
15957
+ const headers = createHeaders({ [FOLDER_ID]: folderId });
15958
+ const response = await this.post(JOB_ENDPOINTS.RESTART, { jobId }, { headers });
15959
+ const rawJob = transformData(pascalToCamelCaseKeys(response.data), JobMap);
15960
+ return createJobWithMethods(rawJob, this);
15961
+ }
15657
15962
  /**
15658
15963
  * Downloads the output file content via the Attachments API.
15659
15964
  * 1. Fetches blob access info from the attachment using AttachmentService
@@ -15741,6 +16046,9 @@
15741
16046
  __decorate([
15742
16047
  track('Jobs.Resume')
15743
16048
  ], JobService.prototype, "resume", null);
16049
+ __decorate([
16050
+ track('Jobs.Restart')
16051
+ ], JobService.prototype, "restart", null);
15744
16052
 
15745
16053
  /**
15746
16054
  * Enum for job sub-state
@@ -16449,6 +16757,260 @@
16449
16757
  FeedbackStatus[FeedbackStatus["Dismissed"] = 2] = "Dismissed";
16450
16758
  })(exports.FeedbackStatus || (exports.FeedbackStatus = {}));
16451
16759
 
16760
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16761
+ var DocumentActionPriority;
16762
+ (function (DocumentActionPriority) {
16763
+ DocumentActionPriority["Low"] = "Low";
16764
+ DocumentActionPriority["Medium"] = "Medium";
16765
+ DocumentActionPriority["High"] = "High";
16766
+ DocumentActionPriority["Critical"] = "Critical";
16767
+ })(DocumentActionPriority || (DocumentActionPriority = {}));
16768
+ var DocumentActionStatus;
16769
+ (function (DocumentActionStatus) {
16770
+ DocumentActionStatus["Unassigned"] = "Unassigned";
16771
+ DocumentActionStatus["Pending"] = "Pending";
16772
+ DocumentActionStatus["Completed"] = "Completed";
16773
+ })(DocumentActionStatus || (DocumentActionStatus = {}));
16774
+ var DocumentActionType;
16775
+ (function (DocumentActionType) {
16776
+ DocumentActionType["Validation"] = "Validation";
16777
+ DocumentActionType["Classification"] = "Classification";
16778
+ })(DocumentActionType || (DocumentActionType = {}));
16779
+
16780
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16781
+ var ProjectProperties;
16782
+ (function (ProjectProperties) {
16783
+ ProjectProperties["IsPredefined"] = "IsPredefined";
16784
+ ProjectProperties["SupportsTags"] = "SupportsTags";
16785
+ ProjectProperties["SupportsVersions"] = "SupportsVersions";
16786
+ ProjectProperties["IsSplittingEnabled"] = "IsSplittingEnabled";
16787
+ })(ProjectProperties || (ProjectProperties = {}));
16788
+ var ProjectType;
16789
+ (function (ProjectType) {
16790
+ ProjectType["Classic"] = "Classic";
16791
+ ProjectType["Modern"] = "Modern";
16792
+ ProjectType["IXP"] = "IXP";
16793
+ ProjectType["Unknown"] = "Unknown";
16794
+ })(ProjectType || (ProjectType = {}));
16795
+ var ResourceStatus;
16796
+ (function (ResourceStatus) {
16797
+ ResourceStatus["Unknown"] = "Unknown";
16798
+ ResourceStatus["NotStarted"] = "NotStarted";
16799
+ ResourceStatus["ExportInProgress"] = "ExportInProgress";
16800
+ ResourceStatus["ExportCompleted"] = "ExportCompleted";
16801
+ ResourceStatus["InProgress"] = "InProgress";
16802
+ ResourceStatus["Suspended"] = "Suspended";
16803
+ ResourceStatus["Resuming"] = "Resuming";
16804
+ ResourceStatus["Available"] = "Available";
16805
+ ResourceStatus["Error"] = "Error";
16806
+ ResourceStatus["Deleting"] = "Deleting";
16807
+ })(ResourceStatus || (ResourceStatus = {}));
16808
+ var ResourceType;
16809
+ (function (ResourceType) {
16810
+ ResourceType["Specialized"] = "Specialized";
16811
+ ResourceType["Generative"] = "Generative";
16812
+ ResourceType["Custom"] = "Custom";
16813
+ ResourceType["Unknown"] = "Unknown";
16814
+ })(ResourceType || (ResourceType = {}));
16815
+
16816
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16817
+ var MarkupType;
16818
+ (function (MarkupType) {
16819
+ MarkupType["Unknown"] = "Unknown";
16820
+ MarkupType["Circled"] = "Circled";
16821
+ MarkupType["Underlined"] = "Underlined";
16822
+ MarkupType["Strikethrough"] = "Strikethrough";
16823
+ })(MarkupType || (MarkupType = {}));
16824
+ var ProcessingSource;
16825
+ (function (ProcessingSource) {
16826
+ ProcessingSource["Unknown"] = "Unknown";
16827
+ ProcessingSource["Ocr"] = "Ocr";
16828
+ ProcessingSource["Pdf"] = "Pdf";
16829
+ ProcessingSource["PlainText"] = "PlainText";
16830
+ ProcessingSource["PdfAndOcr"] = "PdfAndOcr";
16831
+ })(ProcessingSource || (ProcessingSource = {}));
16832
+ var Rotation;
16833
+ (function (Rotation) {
16834
+ Rotation["None"] = "None";
16835
+ Rotation["Rotated90"] = "Rotated90";
16836
+ Rotation["Rotated180"] = "Rotated180";
16837
+ Rotation["Rotated270"] = "Rotated270";
16838
+ Rotation["Other"] = "Other";
16839
+ })(Rotation || (Rotation = {}));
16840
+ var SectionType;
16841
+ (function (SectionType) {
16842
+ SectionType["Vertical"] = "Vertical";
16843
+ SectionType["Paragraph"] = "Paragraph";
16844
+ SectionType["Header"] = "Header";
16845
+ SectionType["Footer"] = "Footer";
16846
+ SectionType["Table"] = "Table";
16847
+ })(SectionType || (SectionType = {}));
16848
+ var TextType;
16849
+ (function (TextType) {
16850
+ TextType["Unknown"] = "Unknown";
16851
+ TextType["Text"] = "Text";
16852
+ TextType["Checkbox"] = "Checkbox";
16853
+ TextType["Handwriting"] = "Handwriting";
16854
+ TextType["Barcode"] = "Barcode";
16855
+ TextType["QRcode"] = "QRcode";
16856
+ TextType["Stamp"] = "Stamp";
16857
+ TextType["Logo"] = "Logo";
16858
+ TextType["Circle"] = "Circle";
16859
+ TextType["Underline"] = "Underline";
16860
+ TextType["Cut"] = "Cut";
16861
+ })(TextType || (TextType = {}));
16862
+ var WordGroupType;
16863
+ (function (WordGroupType) {
16864
+ WordGroupType["Sentence"] = "Sentence";
16865
+ WordGroupType["TableCell"] = "TableCell";
16866
+ WordGroupType["TableRowEnd"] = "TableRowEnd";
16867
+ WordGroupType["Heading"] = "Heading";
16868
+ WordGroupType["Other"] = "Other";
16869
+ })(WordGroupType || (WordGroupType = {}));
16870
+
16871
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16872
+ var ModelKind;
16873
+ (function (ModelKind) {
16874
+ ModelKind["Classifier"] = "Classifier";
16875
+ ModelKind["Extractor"] = "Extractor";
16876
+ })(ModelKind || (ModelKind = {}));
16877
+ var ModelType;
16878
+ (function (ModelType) {
16879
+ ModelType["IXP"] = "IXP";
16880
+ ModelType["Modern"] = "Modern";
16881
+ ModelType["Predefined"] = "Predefined";
16882
+ })(ModelType || (ModelType = {}));
16883
+
16884
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16885
+ var ClassifierDocumentTypeType;
16886
+ (function (ClassifierDocumentTypeType) {
16887
+ ClassifierDocumentTypeType["FormsAi"] = "FormsAi";
16888
+ ClassifierDocumentTypeType["SemiStructuredAi"] = "SemiStructuredAi";
16889
+ ClassifierDocumentTypeType["Helix"] = "Helix";
16890
+ ClassifierDocumentTypeType["Unknown"] = "Unknown";
16891
+ })(ClassifierDocumentTypeType || (ClassifierDocumentTypeType = {}));
16892
+ var CreateTaskPriority;
16893
+ (function (CreateTaskPriority) {
16894
+ CreateTaskPriority["Low"] = "Low";
16895
+ CreateTaskPriority["Medium"] = "Medium";
16896
+ CreateTaskPriority["High"] = "High";
16897
+ CreateTaskPriority["Critical"] = "Critical";
16898
+ })(CreateTaskPriority || (CreateTaskPriority = {}));
16899
+ var GptFieldType;
16900
+ (function (GptFieldType) {
16901
+ GptFieldType["Address"] = "Address";
16902
+ GptFieldType["Boolean"] = "Boolean";
16903
+ GptFieldType["Date"] = "Date";
16904
+ GptFieldType["Name"] = "Name";
16905
+ GptFieldType["Number"] = "Number";
16906
+ GptFieldType["Text"] = "Text";
16907
+ })(GptFieldType || (GptFieldType = {}));
16908
+ var ValidationDisplayMode;
16909
+ (function (ValidationDisplayMode) {
16910
+ ValidationDisplayMode["Classic"] = "Classic";
16911
+ ValidationDisplayMode["Compact"] = "Compact";
16912
+ })(ValidationDisplayMode || (ValidationDisplayMode = {}));
16913
+
16914
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16915
+ var ResultsDataSource;
16916
+ (function (ResultsDataSource) {
16917
+ ResultsDataSource["Automatic"] = "Automatic";
16918
+ ResultsDataSource["Manual"] = "Manual";
16919
+ ResultsDataSource["ManuallyChanged"] = "ManuallyChanged";
16920
+ ResultsDataSource["Defaulted"] = "Defaulted";
16921
+ ResultsDataSource["External"] = "External";
16922
+ })(ResultsDataSource || (ResultsDataSource = {}));
16923
+
16924
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16925
+ var ComparisonOperator;
16926
+ (function (ComparisonOperator) {
16927
+ ComparisonOperator["Equals"] = "Equals";
16928
+ ComparisonOperator["NotEquals"] = "NotEquals";
16929
+ ComparisonOperator["Greater"] = "Greater";
16930
+ ComparisonOperator["Less"] = "Less";
16931
+ ComparisonOperator["GreaterOrEqual"] = "GreaterOrEqual";
16932
+ ComparisonOperator["LessOrEqual"] = "LessOrEqual";
16933
+ })(ComparisonOperator || (ComparisonOperator = {}));
16934
+ var Criticality;
16935
+ (function (Criticality) {
16936
+ Criticality["Must"] = "Must";
16937
+ Criticality["Should"] = "Should";
16938
+ })(Criticality || (Criticality = {}));
16939
+ var FieldType;
16940
+ (function (FieldType) {
16941
+ FieldType["Text"] = "Text";
16942
+ FieldType["Number"] = "Number";
16943
+ FieldType["Date"] = "Date";
16944
+ FieldType["Name"] = "Name";
16945
+ FieldType["Address"] = "Address";
16946
+ FieldType["Keyword"] = "Keyword";
16947
+ FieldType["Set"] = "Set";
16948
+ FieldType["Boolean"] = "Boolean";
16949
+ FieldType["Table"] = "Table";
16950
+ FieldType["Internal"] = "Internal";
16951
+ FieldType["FieldGroup"] = "FieldGroup";
16952
+ FieldType["MonetaryQuantity"] = "MonetaryQuantity";
16953
+ })(FieldType || (FieldType = {}));
16954
+ var LogicalOperator;
16955
+ (function (LogicalOperator) {
16956
+ LogicalOperator["AND"] = "AND";
16957
+ LogicalOperator["OR"] = "OR";
16958
+ })(LogicalOperator || (LogicalOperator = {}));
16959
+ var RuleType;
16960
+ (function (RuleType) {
16961
+ RuleType["Mandatory"] = "Mandatory";
16962
+ RuleType["PossibleValues"] = "PossibleValues";
16963
+ RuleType["Regex"] = "Regex";
16964
+ RuleType["StartsWith"] = "StartsWith";
16965
+ RuleType["EndsWith"] = "EndsWith";
16966
+ RuleType["FixedLength"] = "FixedLength";
16967
+ RuleType["IsNumeric"] = "IsNumeric";
16968
+ RuleType["IsDate"] = "IsDate";
16969
+ RuleType["IsEmail"] = "IsEmail";
16970
+ RuleType["Contains"] = "Contains";
16971
+ RuleType["Expression"] = "Expression";
16972
+ RuleType["TableExpression"] = "TableExpression";
16973
+ RuleType["IsEmpty"] = "IsEmpty";
16974
+ })(RuleType || (RuleType = {}));
16975
+
16976
+ // Auto-generated from the OpenAPI spec — do not edit manually.
16977
+ var ActionStatus;
16978
+ (function (ActionStatus) {
16979
+ ActionStatus["Unassigned"] = "Unassigned";
16980
+ ActionStatus["Pending"] = "Pending";
16981
+ ActionStatus["Completed"] = "Completed";
16982
+ })(ActionStatus || (ActionStatus = {}));
16983
+
16984
+ var index = /*#__PURE__*/Object.freeze({
16985
+ __proto__: null,
16986
+ get ActionStatus () { return ActionStatus; },
16987
+ get ClassifierDocumentTypeType () { return ClassifierDocumentTypeType; },
16988
+ get ComparisonOperator () { return ComparisonOperator; },
16989
+ get CreateTaskPriority () { return CreateTaskPriority; },
16990
+ get Criticality () { return Criticality; },
16991
+ get DocumentActionPriority () { return DocumentActionPriority; },
16992
+ get DocumentActionStatus () { return DocumentActionStatus; },
16993
+ get DocumentActionType () { return DocumentActionType; },
16994
+ get FieldType () { return FieldType; },
16995
+ get GptFieldType () { return GptFieldType; },
16996
+ get LogicalOperator () { return LogicalOperator; },
16997
+ get MarkupType () { return MarkupType; },
16998
+ get ModelKind () { return ModelKind; },
16999
+ get ModelType () { return ModelType; },
17000
+ get ProcessingSource () { return ProcessingSource; },
17001
+ get ProjectProperties () { return ProjectProperties; },
17002
+ get ProjectType () { return ProjectType; },
17003
+ get ResourceStatus () { return ResourceStatus; },
17004
+ get ResourceType () { return ResourceType; },
17005
+ get ResultsDataSource () { return ResultsDataSource; },
17006
+ get Rotation () { return Rotation; },
17007
+ get RuleType () { return RuleType; },
17008
+ get SectionType () { return SectionType; },
17009
+ get TextType () { return TextType; },
17010
+ get ValidationDisplayMode () { return ValidationDisplayMode; },
17011
+ get WordGroupType () { return WordGroupType; }
17012
+ });
17013
+
16452
17014
  /**
16453
17015
  * Asset resolution utilities for UiPath Coded Apps
16454
17016
  *
@@ -16539,6 +17101,7 @@
16539
17101
  exports.DEFAULT_ITEMS_FIELD = DEFAULT_ITEMS_FIELD;
16540
17102
  exports.DEFAULT_PAGE_SIZE = DEFAULT_PAGE_SIZE;
16541
17103
  exports.DEFAULT_TOTAL_COUNT_FIELD = DEFAULT_TOTAL_COUNT_FIELD;
17104
+ exports.DuFramework = index;
16542
17105
  exports.ErrorType = ErrorType;
16543
17106
  exports.ExchangeMap = ExchangeMap;
16544
17107
  exports.HttpStatus = HttpStatus;