@uipath/maestro-builder-sdk 6.67.0 → 6.67.1

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.
@@ -1,7 +1,7 @@
1
1
  import { businessEventProblems } from './business-event-shape.js';
2
2
  import { ruleShapeProblems } from './rule-options.js';
3
3
  import { types } from '../core/expr.js';
4
- import { authoredCaseVersion, CASE_FORMAT_PROFILE, CASE_SCHEMA_VERSIONS } from './format-profile.js';
4
+ import { CASE_FORMAT_PROFILE, CASE_SCHEMA_VERSIONS, authoredCaseVersion, caseVersionMismatch } from './format-profile.js';
5
5
  import { schemaVersionRefusal } from '../schema-version.js';
6
6
  import { caseJsonPreservation, caseJsonPreservationErrors } from './preserve.js';
7
7
  import { EQUALS_EXPR_DIALECT, checkBindingLabels, checkConnectorContract, checkConnectorLookups, checkConnectorSchema, } from '../core/connector-checks.js';
@@ -39,12 +39,10 @@ export function check(built, opts = {}) {
39
39
  code: 'VERSION_DEPRECATED',
40
40
  message: `.version(${JSON.stringify(requestedVersion)}) is deprecated: the Case JSON schema version is declared with .schemaVersion(), which accepts only versions this build can write. This SDK writes ${CASE_FORMAT_PROFILE.writeVersion}.`,
41
41
  });
42
- if (requestedVersion !== CASE_FORMAT_PROFILE.writeVersion)
43
- diags.push({
44
- level: 'error',
45
- code: 'VERSION_MISMATCH',
46
- message: `.version(${JSON.stringify(requestedVersion)}) does not match the serializer's ${CASE_FORMAT_PROFILE.writeVersion} format profile. A document version is a grammar claim, not an author release value.`,
47
- });
42
+ // `serialize` refuses it too (`caseVersionMismatch`, one rule, one message).
43
+ const mismatch = caseVersionMismatch(built);
44
+ if (mismatch)
45
+ diags.push({ level: 'error', code: 'VERSION_MISMATCH', message: mismatch });
48
46
  }
49
47
  // The DECLARED grammar version (`.schemaVersion()`), as opposed to the
50
48
  // deprecated `.version()` above. It is already refused at the call, so this
@@ -40,3 +40,11 @@ export declare const CASE_FORMAT_PROFILE: Readonly<CaseFormatProfile>;
40
40
  export declare const CASE_SCHEMA_VERSIONS: SchemaVersionPolicy;
41
41
  export declare function recordAuthoredCaseVersion(built: object, version: string): void;
42
42
  export declare function authoredCaseVersion(built: object): string | undefined;
43
+ /**
44
+ * `VERSION_MISMATCH`'s message when a deprecated `.version()` asks for a
45
+ * document version other than {@link CASE_FORMAT_PROFILE}'s `writeVersion`,
46
+ * else `undefined`. The serializer writes only its own grammar, so it cannot
47
+ * honour the request: `serialize` refuses it rather than stamp another
48
+ * version, and `check` reports the same message (#1554).
49
+ */
50
+ export declare function caseVersionMismatch(built: object): string | undefined;
@@ -127,3 +127,17 @@ export function recordAuthoredCaseVersion(built, version) {
127
127
  export function authoredCaseVersion(built) {
128
128
  return authoredVersions.get(built);
129
129
  }
130
+ /**
131
+ * `VERSION_MISMATCH`'s message when a deprecated `.version()` asks for a
132
+ * document version other than {@link CASE_FORMAT_PROFILE}'s `writeVersion`,
133
+ * else `undefined`. The serializer writes only its own grammar, so it cannot
134
+ * honour the request: `serialize` refuses it rather than stamp another
135
+ * version, and `check` reports the same message (#1554).
136
+ */
137
+ export function caseVersionMismatch(built) {
138
+ const requested = authoredCaseVersion(built);
139
+ if (requested === undefined || requested === CASE_FORMAT_PROFILE.writeVersion)
140
+ return undefined;
141
+ return `.version(${JSON.stringify(requested)}) does not match the serializer's ${CASE_FORMAT_PROFILE.writeVersion} format profile. `
142
+ + 'A document version is a grammar claim, not an author release value.';
143
+ }
@@ -20,7 +20,7 @@ import { resolveEventWhere } from '../core/lookups.js';
20
20
  import { resolveCaseSubscription } from './subscription.js';
21
21
  import { dedupeConditionNames } from './rule-names.js';
22
22
  import { EXTERNAL_TASK_DESCRIPTOR_CONTRACT, EXTERNAL_TASK_HYBRID_UNSUPPORTED, externalDescriptorRefusal, externalHybridRefusal, externalServiceType, isExternalExecutionMode, } from './external.js';
23
- import { CASE_FORMAT_PROFILE, CASE_SCHEMA_VERSIONS } from './format-profile.js';
23
+ import { CASE_FORMAT_PROFILE, CASE_SCHEMA_VERSIONS, caseVersionMismatch } from './format-profile.js';
24
24
  import { isResourceLabelRefusal, resolveResourceRef, resourceIdentity } from './resource-identity.js';
25
25
  import { ownEntry } from '../core/own-entry.js';
26
26
  import { stableId } from '../core/stable-id.js';
@@ -90,6 +90,9 @@ function conditionNamer(built) {
90
90
  };
91
91
  }
92
92
  export function serialize(built, opts = {}) {
93
+ const versionMismatch = caseVersionMismatch(built);
94
+ if (versionMismatch)
95
+ throw new CompileRefusal('VERSION_MISMATCH', versionMismatch);
93
96
  const ids = new IdGen();
94
97
  const caseId = ids.caseId(built.id);
95
98
  // ── First pass: allocate stage + task ids, build resolution maps ──
@@ -686,7 +686,7 @@ export declare const REFUSALS: {
686
686
  readonly VARIABLE_ORDER_UNKNOWN_ID: "lint";
687
687
  readonly VARS_BRACKET_READ: "lint";
688
688
  readonly VERSION_DEPRECATED: "lint";
689
- readonly VERSION_MISMATCH: "lint";
689
+ readonly VERSION_MISMATCH: "lowering";
690
690
  readonly VOICE_AGENT_ITERATIONS: "lint";
691
691
  readonly VOICE_AGENT_NO_PROMPT: "lint";
692
692
  readonly VOICE_CALL_CONTEXT_NOT_OBJECT: "lint";
@@ -737,7 +737,7 @@ export const REFUSALS = {
737
737
  VARIABLE_ORDER_UNKNOWN_ID: 'lint',
738
738
  VARS_BRACKET_READ: 'lint',
739
739
  VERSION_DEPRECATED: 'lint',
740
- VERSION_MISMATCH: 'lint',
740
+ VERSION_MISMATCH: 'lowering',
741
741
  VOICE_AGENT_ITERATIONS: 'lint',
742
742
  VOICE_AGENT_NO_PROMPT: 'lint',
743
743
  VOICE_CALL_CONTEXT_NOT_OBJECT: 'lint',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/maestro-builder-sdk",
3
- "version": "6.67.0",
3
+ "version": "6.67.1",
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": "1b789661502b5fd528bc26a700665ecdea4821f5"
103
+ "gitref": "65595ae4c46cbbf4515e357d3cb4b3fbe2f33715"
104
104
  }