@uipath/maestro-builder-sdk 6.66.10 → 6.66.12

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.
@@ -9,6 +9,7 @@ export interface CaseSerializeOpts {
9
9
  bindings?: Bindings;
10
10
  }
11
11
  export declare function serialize(built: BuiltCase, opts?: CaseSerializeOpts): Record<string, unknown>;
12
+ export declare const CASE_NODE_LAYOUT_FIELDS: readonly ["position", "style", "measured", "width", "height", "zIndex"];
12
13
  /** How `applyPreservation` treats a field the target already has. */
13
14
  export interface ApplyPreservationOptions {
14
15
  /**
@@ -343,7 +343,7 @@ function stampConnectorConfigVersion(result) {
343
343
  }
344
344
  return result;
345
345
  }
346
- const CASE_NODE_LAYOUT_FIELDS = ['position', 'style', 'measured', 'width', 'height', 'zIndex'];
346
+ export const CASE_NODE_LAYOUT_FIELDS = ['position', 'style', 'measured', 'width', 'height', 'zIndex'];
347
347
  /**
348
348
  * Resolve author-level layout names only after preservation has restored foreign
349
349
  * node identities. Authored fields then win field-by-field on the named entry;
@@ -17,6 +17,8 @@ export type ConnectorResolveCode =
17
17
  * missing or not valid JSON: the library on disk is incomplete (#1015).
18
18
  */
19
19
  | 'CONNECTOR_LIBRARY_ENTRY_UNREADABLE'
20
+ /** The index row and its entry file name different objects for the operation. */
21
+ | 'CONNECTOR_LIBRARY_ENTRY_INCONSISTENT'
20
22
  /**
21
23
  * Flow only: the sidecar was synthesized from Integration Service by `registry
22
24
  * prepare` (no registry node exists), and a Flow node needs the registry's
@@ -147,12 +147,10 @@ export class Library {
147
147
  if (row)
148
148
  return this.pageOf(nodeType, layer, row);
149
149
  }
150
- const parts = nodeType.split('.');
151
- const eventNs = parts[2] === 'trigger' || parts[2] === 'event';
152
150
  const near = nearest(objectName ?? '', objects);
153
151
  throw new ConnectorResolveError('CONNECTOR_NOT_IN_LIBRARY', `connector ${nodeType} has no page for object "${objectName}"`
154
152
  + `${near ? ` (nearest: "${near}")` : ''}. ${describeObjects(objects)} If it is a connection-scoped object, run `
155
- + `\`${prepareCommand(eventNs ? parts[3] : parts[2], (eventNs ? parts.slice(4) : parts.slice(3)).join('.'), '--object', String(objectName))}\` `
153
+ + `\`${prepareFor(nodeType, '--object', String(objectName))}\` `
156
154
  + 'to prepare it, then describe again.');
157
155
  }
158
156
  /**
@@ -909,36 +907,24 @@ export class Library {
909
907
  // bare ENOENT (#1015).
910
908
  const entry = readLibraryFile(nodeType, entryPath, () => readJson(this.read, entryPath));
911
909
  const v1def = readLibraryFile(nodeType, v1defPathOf(entryPath), () => readV1def(this.read, entryPath));
912
- // A stamped object (case 4) reaches here with the index entry's `objectName`
913
- // replaced but the sibling's FILE on disk — so restate the object and derive
914
- // the endpoint from the sibling's own template, rather than shipping a node
915
- // whose `objectName` and `path` name two different objects.
916
- // The index and the definition file can disagree about which object the
917
- // operation addresses, and the definition is the stale side: for
918
- // `uipath-microsoft-outlook365.send-email` the index says `send-mail-v2`
919
- // (what the tenant's typecache reports, connector 1.39.0) while the
920
- // definition still says `send-mail` with `/hubs/productivity/send-mail`.
921
- // `build` reads the definition, so the compiled node dispatched the retired
922
- // path and the runtime SendTask failed — the whole external-outcome half of
923
- // one eval task, from a one-token disagreement.
924
- //
925
- // The index is the fresher side and the one resolution keys on, so restate
926
- // the object from it and re-derive the endpoint, exactly as the stamped
927
- // branch below does. Warned, not silent: it is upstream archive data, so the
928
- // author should see that the two sources disagreed. Unique in the current
929
- // archive (1 of 8035 entries).
910
+ // An index row and its definition that name different objects cannot be
911
+ // reconciled here: the object, path and parameters must come from one
912
+ // operation. Taking the index's path with the definition's parameters sent
913
+ // JSON to Outlook's multipart `send-mail-v2` (MST-17534).
930
914
  if (!opts.objectNameUnverified && entry.operation
931
915
  && typeof e.objectName === 'string' && e.objectName !== ''
932
916
  && typeof entry.operation.objectName === 'string'
933
917
  && entry.operation.objectName !== e.objectName) {
934
- const stale = entry.operation.objectName;
935
- const derived = deriveObjectPath(entry.operation, e.objectName);
936
- this.warn(` warn: connector ${nodeType}: the library index says objectName "${e.objectName}" but its `
937
- + `definition file says "${stale}". Using the index and deriving the endpoint`
938
- + (derived.path ? ` (${entry.operation.path} -> ${derived.path})` : '')
939
- + `; the definition is the stale side when these disagree.\n`);
940
- entry.operation = { ...entry.operation, objectName: e.objectName, ...derived };
918
+ throw new ConnectorResolveError('CONNECTOR_LIBRARY_ENTRY_INCONSISTENT', `connector library entry for ${nodeType} is inconsistent: index.json says objectName `
919
+ + `"${e.objectName}" but ${e.path} says "${entry.operation.objectName}" `
920
+ + `(${entry.operation.path ?? 'no path'}). The compiled node would call one operation with `
921
+ + `another's inputs. Refresh the library with \`${PULL_COMMAND} --force\`, or describe the `
922
+ + `operation from the live connection with \`${prepareFor(nodeType, ...(e.activityType === 'Generic' ? ['--object', e.objectName] : []))}\`.`);
941
923
  }
924
+ // A stamped object (case 4) reaches here with the index entry's `objectName`
925
+ // replaced but the sibling's FILE on disk — so restate the object and derive
926
+ // the endpoint from the sibling's own template, rather than shipping a node
927
+ // whose `objectName` and `path` name two different objects.
942
928
  if (opts.objectNameUnverified && entry.operation) {
943
929
  entry.operation = {
944
930
  ...entry.operation,
@@ -1052,6 +1038,12 @@ function libraryEntries(read, path) {
1052
1038
  cache?.set(path, entries);
1053
1039
  return entries;
1054
1040
  }
1041
+ /** The `registry prepare` command for a connector action or event `nodeType`. */
1042
+ function prepareFor(nodeType, ...rest) {
1043
+ const parts = nodeType.split('.');
1044
+ const eventNs = parts[2] === 'trigger' || parts[2] === 'event';
1045
+ return prepareCommand(eventNs ? parts[3] : parts[2], (eventNs ? parts.slice(4) : parts.slice(3)).join('.'), ...rest);
1046
+ }
1055
1047
  function readLibraryFile(nodeType, path, read) {
1056
1048
  try {
1057
1049
  return read();
@@ -165,6 +165,7 @@ export declare const REFUSALS: {
165
165
  readonly CONNECTOR_INPUT_MISSING: "draft";
166
166
  readonly CONNECTOR_INPUT_ROW_NO_TARGET: "lint";
167
167
  readonly CONNECTOR_INPUT_ROW_TARGET_UNKNOWN: "lint";
168
+ readonly CONNECTOR_LIBRARY_ENTRY_INCONSISTENT: "lowering";
168
169
  readonly CONNECTOR_LIBRARY_ENTRY_UNREADABLE: "lowering";
169
170
  readonly CONNECTOR_NODE_TYPE_INVALID: "lowering";
170
171
  readonly CONNECTOR_NOT_IN_LIBRARY: "lowering";
@@ -216,6 +216,7 @@ export const REFUSALS = {
216
216
  CONNECTOR_INPUT_MISSING: 'draft',
217
217
  CONNECTOR_INPUT_ROW_NO_TARGET: 'lint',
218
218
  CONNECTOR_INPUT_ROW_TARGET_UNKNOWN: 'lint',
219
+ CONNECTOR_LIBRARY_ENTRY_INCONSISTENT: 'lowering',
219
220
  CONNECTOR_LIBRARY_ENTRY_UNREADABLE: 'lowering',
220
221
  CONNECTOR_NODE_TYPE_INVALID: 'lowering',
221
222
  CONNECTOR_NOT_IN_LIBRARY: 'lowering',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/maestro-builder-sdk",
3
- "version": "6.66.10",
3
+ "version": "6.66.12",
4
4
  "description": "Build UiPath Flow, Case, and BPMN artifacts by writing TypeScript.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://docs.uipath.com/maestro",
@@ -100,5 +100,5 @@
100
100
  "@types/node": "^22.7.0",
101
101
  "esbuild": "^0.28.1"
102
102
  },
103
- "gitref": "38abdec4c17d742d7b352e018d729d1d8253b35a"
103
+ "gitref": "09e14700793a9cacefa30495f49e5a5753995226"
104
104
  }