@salesforce/plugin-bre-to-cml 1.2.17 → 1.3.0

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,5 +1,6 @@
1
+ import { Connection } from '@salesforce/core';
1
2
  import { ParsedRuleDefinition, RecordUpdate, RuleKeyEntry, RuleRecord } from '../../../shared/insurance/models.js';
2
- import { InsuranceRuleConvertCommand, InsuranceRuleConvertResult } from '../../../shared/insurance/insurance-rule-convert-command.js';
3
+ import { InsuranceRuleConvertCommand, InsuranceRuleConvertContext, InsuranceRuleConvertResult, ParsedRuleEntry } from '../../../shared/insurance/insurance-rule-convert-command.js';
3
4
  type UnderwritingRuleRecord = RuleRecord & {
4
5
  ApiName: string | null;
5
6
  DynamicRuleDefinition: string | null;
@@ -29,6 +30,14 @@ export default class CmlConvertUnderwritingRules extends InsuranceRuleConvertCom
29
30
  protected readonly soql = "SELECT Id, Name, ApiName, DynamicRuleDefinition, ProductPath, RuleKey, UnderwritingRuleGroupId, UnderwritingRuleGroup.Name FROM UnderwritingRule WHERE RuleKey = null";
30
31
  protected readonly recordUpdateKind: "underwriting-update";
31
32
  run(): Promise<CmlConvertUnderwritingRulesResult>;
33
+ /**
34
+ * Merge mode: read the org's existing ConstraintModel, compute each underwriting rule's pathed
35
+ * rule key (matching the platform's auto-generated RuleKey) and sanitized constraint name, and
36
+ * nest the `constraint <name> = (...)` statement into the correct existing leaf `type` block —
37
+ * instead of overwriting the curated model with a flat one. Mirrors CmlConvertSurchargeRules'
38
+ * runMergeConvert override.
39
+ */
40
+ protected runMergeConvert(_ctx: InsuranceRuleConvertContext, conn: Connection, records: UnderwritingRuleRecord[], ruleDefs: ParsedRuleEntry[], productIdToCode: Map<string, string>, api: string, safeApi: string, workspaceDir: string): Promise<InsuranceRuleConvertResult>;
32
41
  protected parseRecord(record: UnderwritingRuleRecord): ParsedRuleDefinition | null;
33
42
  /**
34
43
  * Pure transform — the file-only successor to the old live updateOrgRecords. Produces the exact
@@ -17,6 +17,7 @@ import { Flags } from '@salesforce/sf-plugins-core';
17
17
  import { Messages } from '@salesforce/core';
18
18
  import { InsuranceRuleConvertCommand, } from '../../../shared/insurance/insurance-rule-convert-command.js';
19
19
  import { decodeHtmlEntities } from '../../../shared/insurance/insurance-rule-generator.js';
20
+ import { buildUnderwritingConstraintRules, fetchExistingConstraintModel, fetchProductTypeTags, mergeUnderwritingConstraints, splitProductPath, } from '../../../shared/insurance/insurance-cml-merge.js';
20
21
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
21
22
  const messages = Messages.loadMessages('@salesforce/plugin-bre-to-cml', 'cml.convert.underwriting-rules');
22
23
  // eslint-disable-next-line sf-plugin/only-extend-SfCommand
@@ -49,8 +50,76 @@ export default class CmlConvertUnderwritingRules extends InsuranceRuleConvertCom
49
50
  workspaceDir: flags['workspace-dir'],
50
51
  inputFile: flags['uw-file'],
51
52
  updateRecords: flags['update-records'],
53
+ // Underwriting conversion ALWAYS merges into the org's existing curated ConstraintModel —
54
+ // mirrors surcharge-rules.ts: the flat-overwrite build path is intentionally unreachable
55
+ // here (it silently drops nested underwriting constraints). There is no flag to opt out.
56
+ mergeWithOrg: true,
52
57
  });
53
58
  }
59
+ /**
60
+ * Merge mode: read the org's existing ConstraintModel, compute each underwriting rule's pathed
61
+ * rule key (matching the platform's auto-generated RuleKey) and sanitized constraint name, and
62
+ * nest the `constraint <name> = (...)` statement into the correct existing leaf `type` block —
63
+ * instead of overwriting the curated model with a flat one. Mirrors CmlConvertSurchargeRules'
64
+ * runMergeConvert override.
65
+ */
66
+ async runMergeConvert(_ctx, conn, records, ruleDefs, productIdToCode, api, safeApi, workspaceDir) {
67
+ const existing = await fetchExistingConstraintModel(conn, api);
68
+ if (!existing?.cmlText.trim()) {
69
+ this.error(`underwriting-rules merges into an existing ConstraintModel for CML API '${api}', but none was found. Create the curated model first (e.g. via the prod-cfg converter or by importing a baseline), then re-run this command.`);
70
+ }
71
+ const productIds = new Set();
72
+ for (const { record } of ruleDefs) {
73
+ for (const id of splitProductPath(record.ProductPath))
74
+ productIds.add(id);
75
+ }
76
+ const productIdToType = await fetchProductTypeTags(conn, productIds);
77
+ const rules = buildUnderwritingConstraintRules(this.keyPrefix, this.constraintLabel, ruleDefs, productIdToCode, productIdToType);
78
+ rules.forEach((r) => this.log(` -> ${r.recordName} => ${r.constraintName} (type: ${r.typeName ?? 'UNRESOLVED'})`));
79
+ const { mergedCml, placements, skips, attributeWarnings } = mergeUnderwritingConstraints(existing.cmlText, rules);
80
+ this.log(`\nMerge summary: ${placements.filter((p) => p.status === 'inserted').length} inserted, ${placements.filter((p) => p.status === 'replaced').length} updated in place, ${skips.length} skipped.`);
81
+ for (const s of skips)
82
+ this.warn(` SKIPPED ${s.rule.recordName}: ${s.reason}`);
83
+ for (const w of attributeWarnings)
84
+ this.warn(` ATTRIBUTE ${w}`);
85
+ // Mirrors surcharge-rules.ts' bucketed skip summary — same reason-vocabulary buckets, adapted
86
+ // to underwriting's skip-reason vocabulary (no separate "duplicate pathed rule key" reason;
87
+ // instead a duplicate constraint-name-in-type collision).
88
+ if (skips.length > 0) {
89
+ const counts = {
90
+ duplicateConstraint: 0,
91
+ emptyPath: 0,
92
+ noTypeTag: 0,
93
+ typeBlockMissing: 0,
94
+ typeBlockAmbiguous: 0,
95
+ other: 0,
96
+ };
97
+ for (const s of skips) {
98
+ if (s.reason.startsWith('duplicate constraint name'))
99
+ counts.duplicateConstraint += 1;
100
+ else if (s.reason.startsWith('empty ProductPath'))
101
+ counts.emptyPath += 1;
102
+ else if (s.reason.startsWith('no CML type tag'))
103
+ counts.noTypeTag += 1;
104
+ else if (s.reason.includes('not found in existing model'))
105
+ counts.typeBlockMissing += 1;
106
+ else if (s.reason.includes('is ambiguous'))
107
+ counts.typeBlockAmbiguous += 1;
108
+ else
109
+ counts.other += 1;
110
+ }
111
+ this.log(`Skip breakdown: ${counts.duplicateConstraint} duplicate-constraint-name, ${counts.emptyPath} empty-ProductPath, ` +
112
+ `${counts.noTypeTag} no-type-tag, ${counts.typeBlockMissing} type-block-missing, ` +
113
+ `${counts.typeBlockAmbiguous} type-block-ambiguous, ${counts.other} other`);
114
+ }
115
+ const ruleKeyMapping = placements.map((p) => ({
116
+ recordId: p.rule.recordId,
117
+ name: p.rule.recordName,
118
+ ruleKey: p.rule.ruleKey,
119
+ }));
120
+ const recordUpdateFile = await this.writeRecordUpdateFile(records, ruleKeyMapping, api, safeApi, workspaceDir);
121
+ return this.writeMergedOutputFiles(mergedCml, ruleKeyMapping, safeApi, workspaceDir, api, recordUpdateFile);
122
+ }
54
123
  parseRecord(record) {
55
124
  if (!record.DynamicRuleDefinition) {
56
125
  this.warn(`Skipping ${record.Name}: no DynamicRuleDefinition`);
@@ -1 +1 @@
1
- {"version":3,"file":"underwriting-rules.js","sourceRoot":"","sources":["../../../../src/commands/cml/convert/underwriting-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"underwriting-rules.js","sourceRoot":"","sources":["../../../../src/commands/cml/convert/underwriting-rules.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,49 @@ export type MergeResult = {
49
49
  skips: MergeSkip[];
50
50
  attributeWarnings: string[];
51
51
  };
52
+ export type UwMergePlacement = {
53
+ rule: UnderwritingConstraintRule;
54
+ status: 'inserted' | 'replaced';
55
+ };
56
+ export type UwMergeSkip = {
57
+ rule: UnderwritingConstraintRule;
58
+ reason: string;
59
+ };
60
+ export type UwMergeResult = {
61
+ mergedCml: string;
62
+ placements: UwMergePlacement[];
63
+ skips: UwMergeSkip[];
64
+ attributeWarnings: string[];
65
+ };
66
+ /**
67
+ * Underwriting analogue of {@link PathedSurchargeRule}: instead of a `rule(...)` action statement,
68
+ * underwriting eligibility is emitted as a named `constraint <name> = (<expr>, "<label>");`
69
+ * statement nested inside the leaf product's `type` block (see `buildCmlModel`'s constraint-form
70
+ * branch in insurance-rule-generator.ts, which this mirrors for merge mode).
71
+ */
72
+ export type UnderwritingConstraintRule = {
73
+ recordId: string;
74
+ recordName: string;
75
+ apiName: string;
76
+ /** Full pathed key: UW__<code-of-each-path-segment>__<apiName> (advisory; not emitted in the constraint form, but tracked for the RuleKeyMapping output). */
77
+ ruleKey: string;
78
+ /** Ordered ProductCodes for every ProductPath segment. Empty when the source ProductPath was blank/whitespace-only. */
79
+ pathProductCodes: string[];
80
+ /** Leaf CML type name (ConstraintModelTag of the LAST ProductPath segment). */
81
+ typeName: string | undefined;
82
+ /** Sanitized constraint name used in the CML (the `constraint <name> = (...)` identifier). */
83
+ constraintName: string;
84
+ /** The full generated `constraint <name> = (<expr>, "<label>");` statement. */
85
+ statement: string;
86
+ /**
87
+ * Attributes the declaration references, with their derived CML type — used to auto-insert
88
+ * missing attribute declarations into the leaf type block during merge.
89
+ */
90
+ referencedAttributes: Array<{
91
+ name: string;
92
+ cmlType: string;
93
+ }>;
94
+ };
52
95
  /**
53
96
  * Builds the pathed surcharge rule key that mirrors the platform's auto-generated
54
97
  * `ProductSurcharge.RuleKey`: prefix + every path-segment product code + apiName.
@@ -72,6 +115,23 @@ export declare function fetchExistingConstraintModel(conn: Connection, cmlApiNam
72
115
  * correct way to find which existing `type` block a surcharge's leaf product nests into.
73
116
  */
74
117
  export declare function fetchProductTypeTags(conn: Connection, productIds: Set<string>): Promise<Map<string, string>>;
118
+ export declare function escapeRegExp(value: string): string;
119
+ /**
120
+ * [Fix #4] Detects the dominant line ending of a CML text by counting CRLF vs bare-LF occurrences.
121
+ * Returns `\r\n` when at least one CRLF appears AND CRLFs are at least as common as bare LFs (mixed
122
+ * CRLF-majority files still get CRLF; pure-LF and empty files get `\n`). Used by the INSERT path so
123
+ * a CRLF-curated model stays byte-clean after splicing. The L2 replace path preserves the line
124
+ * ending of the REPLACED span directly, so this only matters for new inserts.
125
+ */
126
+ export declare function detectDominantLineEnding(cml: string): string;
127
+ /**
128
+ * Brace-matches the block whose opening `{` is at `openIdx` and returns the index of its matched
129
+ * closing `}`. The scanner ignores `{`/`}`/`"` that appear inside double-quoted string literals,
130
+ * `//` line comments, and `/* *\/` block comments — a curated Gold-Standard model routinely carries
131
+ * comments, and a stray `}` inside one (or inside a quoted rule value) must NOT be mistaken for the
132
+ * structural close, which would return a too-early closeIdx and splice a new rule mid-statement.
133
+ */
134
+ export declare function matchClosingBrace(cml: string, openIdx: number): number | undefined;
75
135
  /** Builds the `rule(...)` statement for a surcharge, using the same constraint generator as build mode. */
76
136
  export declare function buildSurchargeRuleStatement(declaration: string, ruleKey: string): string;
77
137
  /**
@@ -82,6 +142,22 @@ export declare function buildPathedSurchargeRules(prefix: string, ruleDefs: Arra
82
142
  record: RuleRecord;
83
143
  ruleDef: ParsedRuleDefinition;
84
144
  }>, productIdToCode: Map<string, string>, productIdToType: Map<string, string>): PathedSurchargeRule[];
145
+ /**
146
+ * Builds the `constraint <name> = (...)` statement for underwriting eligibility, using the same
147
+ * constraint generator as build mode's constraint-form branch (see `buildCmlModel`).
148
+ */
149
+ export declare function buildUnderwritingConstraintStatement(constraintName: string, declaration: string, label: string): string;
150
+ /**
151
+ * Builds the constraint-form rule descriptors for underwriting eligibility, mirroring
152
+ * {@link buildPathedSurchargeRules} but emitting a named `constraint` statement (matching the
153
+ * constraint-form branch of `buildCmlModel` in insurance-rule-generator.ts) instead of a `rule(...)`
154
+ * action statement. `productIdToCode` and `productIdToType` must already cover every ProductPath
155
+ * segment.
156
+ */
157
+ export declare function buildUnderwritingConstraintRules(keyPrefix: string, constraintLabel: string, ruleDefs: Array<{
158
+ record: RuleRecord;
159
+ ruleDef: ParsedRuleDefinition;
160
+ }>, productIdToCode: Map<string, string>, productIdToType: Map<string, string>): UnderwritingConstraintRule[];
85
161
  /**
86
162
  * Merges the pathed surcharge `rule(...)` statements into the existing CML text. If the rule key is
87
163
  * already present, the existing statement line is replaced in place (idempotent). Otherwise the
@@ -89,3 +165,33 @@ export declare function buildPathedSurchargeRules(prefix: string, ruleDefs: Arra
89
165
  * block can't be found are skipped (reported, never silently dropped).
90
166
  */
91
167
  export declare function mergeSurchargeRules(existingCml: string, rules: PathedSurchargeRule[]): MergeResult;
168
+ /**
169
+ * Merges the underwriting `constraint <name> = (...)` statements into the existing CML text.
170
+ * Mirrors {@link mergeSurchargeRules}'s insert/replace/skip shape, but for the constraint form
171
+ * underwriting eligibility uses instead of a `rule(...)` action statement:
172
+ *
173
+ * - If a constraint with the same name already exists in the rule's leaf `type` block, its full
174
+ * statement (from the `constraint` keyword through the terminating `;`) is replaced in place
175
+ * (idempotent — re-running the merge with the same input reproduces the same output).
176
+ * - Otherwise the statement is inserted just before the closing brace of the leaf `type` block.
177
+ * - Before placing a rule's constraint, any of its `referencedAttributes` not already declared
178
+ * anywhere in the leaf `type` block are auto-inserted (as `<cmlType> <attrName>;`) right after
179
+ * the block's opening brace, and reported via `attributeWarnings` so the caller can log them —
180
+ * unlike surcharge merge (which only WARNS about missing attributes, since injecting into the
181
+ * curated model there was judged too risky for a `rule(...)` action statement), underwriting
182
+ * constraints reference attributes that must resolve for the constraint to compile, so the
183
+ * declaration is added rather than merely flagged.
184
+ *
185
+ * Rules with a blank ProductPath, no resolved leaf type tag, an ambiguous/duplicate type block, or
186
+ * an intra-run duplicate (typeName, constraintName) pair are skipped (reported, never silently
187
+ * dropped) — never throws on a single rule's failure.
188
+ */
189
+ export declare function mergeUnderwritingConstraints(existingCml: string, rules: UnderwritingConstraintRule[]): UwMergeResult;
190
+ /**
191
+ * Returns a copy of `cml` with identical length where every character inside a `//` line comment or
192
+ * a `/* *\/` block comment is replaced by a space (newlines preserved). Used so the replace-anchor
193
+ * scan can ignore comment contents without losing offset alignment with the original text. String
194
+ * literals are left intact: the anchor itself requires the literal `"InsuranceSurchargeRule"` action
195
+ * token, so a same-key VALUE inside another rule's string still won't satisfy the action-scope shape.
196
+ */
197
+ export declare function blankComments(cml: string): string;
@@ -1,5 +1,6 @@
1
1
  import { CmlConstraint } from '../types/types.js';
2
- import { buildConstraintDeclaration, collectEmittedAttributes, sanitizeName, buildStageTransition, } from './insurance-rule-generator.js';
2
+ import { CONSTRAINT_TYPES } from '../constants/constants.js';
3
+ import { buildConstraintDeclaration, collectAttributeTypes, collectEmittedAttributes, sanitizeName, buildStageTransition, } from './insurance-rule-generator.js';
3
4
  import { quoteSoqlIdList } from './insurance-org.js';
4
5
  /**
5
6
  * MERGE MODE (insurance-only): instead of building a fresh single-type CML and PATCH-replacing
@@ -75,7 +76,7 @@ export async function fetchProductTypeTags(conn, productIds) {
75
76
  }
76
77
  return idToTag;
77
78
  }
78
- function escapeRegExp(value) {
79
+ export function escapeRegExp(value) {
79
80
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
80
81
  }
81
82
  /**
@@ -85,7 +86,7 @@ function escapeRegExp(value) {
85
86
  * a CRLF-curated model stays byte-clean after splicing. The L2 replace path preserves the line
86
87
  * ending of the REPLACED span directly, so this only matters for new inserts.
87
88
  */
88
- function detectDominantLineEnding(cml) {
89
+ export function detectDominantLineEnding(cml) {
89
90
  const crlfCount = (cml.match(/\r\n/g) ?? []).length;
90
91
  // Subtract CRLFs from the total LF count to get the BARE-LF count (an LF preceded by CR is part of a CRLF).
91
92
  const totalLf = (cml.match(/\n/g) ?? []).length;
@@ -99,7 +100,7 @@ function detectDominantLineEnding(cml) {
99
100
  * comments, and a stray `}` inside one (or inside a quoted rule value) must NOT be mistaken for the
100
101
  * structural close, which would return a too-early closeIdx and splice a new rule mid-statement.
101
102
  */
102
- function matchClosingBrace(cml, openIdx) {
103
+ export function matchClosingBrace(cml, openIdx) {
103
104
  let depth = 0;
104
105
  let inString = false;
105
106
  let inLineComment = false;
@@ -223,6 +224,64 @@ export function buildPathedSurchargeRules(prefix, ruleDefs, productIdToCode, pro
223
224
  };
224
225
  });
225
226
  }
227
+ /**
228
+ * Builds the `constraint <name> = (...)` statement for underwriting eligibility, using the same
229
+ * constraint generator as build mode's constraint-form branch (see `buildCmlModel`).
230
+ */
231
+ export function buildUnderwritingConstraintStatement(constraintName, declaration, label) {
232
+ const constraint = new CmlConstraint(CONSTRAINT_TYPES.CONSTRAINT, declaration, `"${label}"`);
233
+ constraint.name = constraintName;
234
+ return constraint.generateCml();
235
+ }
236
+ /**
237
+ * Builds the constraint-form rule descriptors for underwriting eligibility, mirroring
238
+ * {@link buildPathedSurchargeRules} but emitting a named `constraint` statement (matching the
239
+ * constraint-form branch of `buildCmlModel` in insurance-rule-generator.ts) instead of a `rule(...)`
240
+ * action statement. `productIdToCode` and `productIdToType` must already cover every ProductPath
241
+ * segment.
242
+ */
243
+ export function buildUnderwritingConstraintRules(keyPrefix, constraintLabel, ruleDefs, productIdToCode, productIdToType) {
244
+ return ruleDefs.map(({ record, ruleDef }) => {
245
+ const apiName = ruleDef.apiName ?? record.Name;
246
+ const segments = splitProductPath(record.ProductPath);
247
+ const pathCodes = segments.map((id) => productIdToCode.get(id) ?? id);
248
+ const stageTransition = buildStageTransition(ruleDef.underwritingRuleGroup);
249
+ const ruleKey = buildPathedRuleKey(keyPrefix, pathCodes, apiName, stageTransition);
250
+ const leafProductId = segments[segments.length - 1];
251
+ const typeName = leafProductId ? productIdToType.get(leafProductId) : undefined;
252
+ const declaration = buildConstraintDeclaration(ruleDef);
253
+ // Mirrors buildCmlModel's constraint naming: sanitized apiName, with the stage transition
254
+ // appended so two rules sharing an apiName under the same product (gated on different
255
+ // transitions) don't collide.
256
+ const constraintName = sanitizeName(stageTransition ? `${apiName}_${stageTransition}` : apiName);
257
+ const statement = buildUnderwritingConstraintStatement(constraintName, declaration, `${constraintLabel}: ${record.Name}`);
258
+ // Same emitted-vs-collected reconciliation buildPathedSurchargeRules uses for
259
+ // referencedAttributes, but ALSO carrying each attribute's derived CML type:
260
+ // collectAttributeTypes keys its map by the RAW attribute name, whereas
261
+ // collectEmittedAttributes returns SANITIZED names, so we sanitize each raw key before
262
+ // matching it against the emitted-name set.
263
+ const emittedSanitized = collectEmittedAttributes([{ ruleDef }]);
264
+ const attrTypesByRawName = collectAttributeTypes([{ ruleDef }]);
265
+ const referencedAttributes = [];
266
+ for (const [rawName, cmlType] of attrTypesByRawName) {
267
+ const sanitized = sanitizeName(rawName);
268
+ if (emittedSanitized.has(sanitized)) {
269
+ referencedAttributes.push({ name: sanitized, cmlType });
270
+ }
271
+ }
272
+ return {
273
+ recordId: record.Id,
274
+ recordName: record.Name,
275
+ apiName,
276
+ ruleKey,
277
+ pathProductCodes: pathCodes,
278
+ typeName,
279
+ constraintName,
280
+ statement,
281
+ referencedAttributes,
282
+ };
283
+ });
284
+ }
226
285
  /**
227
286
  * Merges the pathed surcharge `rule(...)` statements into the existing CML text. If the rule key is
228
287
  * already present, the existing statement line is replaced in place (idempotent). Otherwise the
@@ -321,6 +380,122 @@ export function mergeSurchargeRules(existingCml, rules) {
321
380
  }
322
381
  return { mergedCml: cml, placements, skips, attributeWarnings };
323
382
  }
383
+ /**
384
+ * Merges the underwriting `constraint <name> = (...)` statements into the existing CML text.
385
+ * Mirrors {@link mergeSurchargeRules}'s insert/replace/skip shape, but for the constraint form
386
+ * underwriting eligibility uses instead of a `rule(...)` action statement:
387
+ *
388
+ * - If a constraint with the same name already exists in the rule's leaf `type` block, its full
389
+ * statement (from the `constraint` keyword through the terminating `;`) is replaced in place
390
+ * (idempotent — re-running the merge with the same input reproduces the same output).
391
+ * - Otherwise the statement is inserted just before the closing brace of the leaf `type` block.
392
+ * - Before placing a rule's constraint, any of its `referencedAttributes` not already declared
393
+ * anywhere in the leaf `type` block are auto-inserted (as `<cmlType> <attrName>;`) right after
394
+ * the block's opening brace, and reported via `attributeWarnings` so the caller can log them —
395
+ * unlike surcharge merge (which only WARNS about missing attributes, since injecting into the
396
+ * curated model there was judged too risky for a `rule(...)` action statement), underwriting
397
+ * constraints reference attributes that must resolve for the constraint to compile, so the
398
+ * declaration is added rather than merely flagged.
399
+ *
400
+ * Rules with a blank ProductPath, no resolved leaf type tag, an ambiguous/duplicate type block, or
401
+ * an intra-run duplicate (typeName, constraintName) pair are skipped (reported, never silently
402
+ * dropped) — never throws on a single rule's failure.
403
+ */
404
+ export function mergeUnderwritingConstraints(existingCml, rules) {
405
+ let cml = existingCml;
406
+ const placements = [];
407
+ const skips = [];
408
+ const attributeWarnings = [];
409
+ const eol = detectDominantLineEnding(existingCml);
410
+ // Mirrors mergeSurchargeRules' placedKeys guard: a second rule resolving to the same
411
+ // (typeName, constraintName) pair must be reported as a collision skip, not treated as an
412
+ // idempotent replace of the first rule's just-placed statement.
413
+ const placedNames = new Set();
414
+ for (const rule of rules) {
415
+ if (rule.pathProductCodes.length === 0) {
416
+ skips.push({
417
+ rule,
418
+ reason: `empty ProductPath for ${rule.recordName}; refusing to merge a non-pathed underwriting rule`,
419
+ });
420
+ continue;
421
+ }
422
+ if (!rule.typeName) {
423
+ skips.push({ rule, reason: `no CML type tag found for the leaf product of ${rule.recordName}` });
424
+ continue;
425
+ }
426
+ const placementKey = `${rule.typeName}::${rule.constraintName}`;
427
+ if (placedNames.has(placementKey)) {
428
+ skips.push({
429
+ rule,
430
+ reason: `duplicate constraint name '${rule.constraintName}' in type '${rule.typeName}' collides with another rule in this run (${rule.recordName} skipped)`,
431
+ });
432
+ continue;
433
+ }
434
+ // Recomputed per-iteration because a prior rule's splice (attribute insert, constraint
435
+ // replace/insert) may have mutated `cml`.
436
+ const scan = blankComments(cml);
437
+ const block = findTypeBlock(cml, rule.typeName, scan);
438
+ if (!block) {
439
+ skips.push({ rule, reason: `type block '${rule.typeName}' not found in existing model` });
440
+ continue;
441
+ }
442
+ if ('ambiguous' in block) {
443
+ skips.push({
444
+ rule,
445
+ reason: `type block '${rule.typeName}' is ambiguous (multiple/duplicate declarations) in existing model; skipping ${rule.recordName} rather than guessing`,
446
+ });
447
+ continue;
448
+ }
449
+ // Warn (but do not auto-insert) when a referenced attribute is not declared in the type
450
+ // block — matching the surcharge merge's behavior. The curated model is not mutated for
451
+ // attributes; the operator must add them manually before import.
452
+ for (const attr of rule.referencedAttributes) {
453
+ const bodyScan = scan.slice(block.openIdx, block.closeIdx + 1);
454
+ const declRe = new RegExp(`\\b${escapeRegExp(attr.cmlType)}\\s+${escapeRegExp(attr.name)}\\b`);
455
+ if (declRe.test(bodyScan))
456
+ continue;
457
+ attributeWarnings.push(`${rule.recordName}: declaration references '${attr.name}' which is absent from type '${rule.typeName}'`);
458
+ }
459
+ const stmt = findConstraintStatement(cml, block, rule.constraintName, scan);
460
+ if (stmt) {
461
+ // Splice ONLY the matched statement span (`constraint ... ;`), mirroring the precise-span
462
+ // splice mergeSurchargeRules uses for its rule(...) replace path.
463
+ cml = cml.slice(0, stmt.start) + rule.statement + cml.slice(stmt.end);
464
+ placements.push({ rule, status: 'replaced' });
465
+ placedNames.add(placementKey);
466
+ continue;
467
+ }
468
+ // Insert before the closing brace, indented one level (4 spaces), with a leading blank line.
469
+ const insertion = `${eol} ${rule.statement}${eol}`;
470
+ cml = cml.slice(0, block.closeIdx) + insertion + cml.slice(block.closeIdx);
471
+ placements.push({ rule, status: 'inserted' });
472
+ placedNames.add(placementKey);
473
+ }
474
+ return { mergedCml: cml, placements, skips, attributeWarnings };
475
+ }
476
+ /**
477
+ * Finds the single `constraint <name> = (...)` statement carrying `constraintName` INSIDE the
478
+ * given `block` (the rule's leaf `type` block) and returns the precise start/end offsets of the
479
+ * whole statement (from the `constraint` keyword through the terminating `;`), so the caller can
480
+ * splice only that statement in place. Scoped to `block` so a same-named constraint in a sibling
481
+ * type block is never mistaken for a match. Runs against the comment-blanked `scan` view (see
482
+ * {@link findSurchargeStatement}'s companion rationale) so a constraint-shaped string sitting
483
+ * inside a comment can't be clobbered.
484
+ */
485
+ function findConstraintStatement(cml, block, constraintName, scan) {
486
+ const bodyScan = scan.slice(block.openIdx, block.closeIdx + 1);
487
+ const anchor = new RegExp(`constraint\\s+${escapeRegExp(constraintName)}\\s*=\\s*\\(`);
488
+ const m = anchor.exec(bodyScan);
489
+ if (!m)
490
+ return undefined;
491
+ const start = block.openIdx + m.index;
492
+ const semi = findStructuralSemicolon(scan, start + m[0].length);
493
+ if (semi === undefined) {
494
+ // Malformed unterminated constraint(...) — refuse to splice rather than guessing.
495
+ return undefined;
496
+ }
497
+ return { start, end: semi + 1 };
498
+ }
324
499
  /**
325
500
  * C2/M4/L1: finds the single-line surcharge `rule(...)` statement that carries `ruleKey` in the
326
501
  * action-scope slot — i.e. `rule(<decl>, "InsuranceSurchargeRule", "<ruleKey>", ...`. Only such a
@@ -399,7 +574,7 @@ function findStructuralSemicolon(scan, from) {
399
574
  * literals are left intact: the anchor itself requires the literal `"InsuranceSurchargeRule"` action
400
575
  * token, so a same-key VALUE inside another rule's string still won't satisfy the action-scope shape.
401
576
  */
402
- function blankComments(cml) {
577
+ export function blankComments(cml) {
403
578
  const out = cml.split('');
404
579
  let inString = false;
405
580
  let inLineComment = false;
@@ -1 +1 @@
1
- {"version":3,"file":"insurance-cml-merge.js","sourceRoot":"","sources":["../../../src/shared/insurance/insurance-cml-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insurance-cml-merge.js","sourceRoot":"","sources":["../../../src/shared/insurance/insurance-cml-merge.ts"],"names":[],"mappings":"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"}
package/oclif.lock CHANGED
@@ -1252,10 +1252,10 @@
1252
1252
  dependencies:
1253
1253
  "@salesforce/ts-types" "^2.0.12"
1254
1254
 
1255
- "@salesforce/plugin-command-reference@^3.1.128":
1256
- version "3.1.128"
1257
- resolved "https://registry.yarnpkg.com/@salesforce/plugin-command-reference/-/plugin-command-reference-3.1.128.tgz#a993986efb710dd138f3bec54b35fff251937967"
1258
- integrity sha512-n4STcLfMiFRvAjTqiYZ6bWElp45o8eJobrU/iHnA7mQdOhVFbUn3HGbJxFyA7zSBW8fMVh4NYrjgBOPgusuWUA==
1255
+ "@salesforce/plugin-command-reference@^3.1.131":
1256
+ version "3.1.131"
1257
+ resolved "https://registry.yarnpkg.com/@salesforce/plugin-command-reference/-/plugin-command-reference-3.1.131.tgz#642bc96a550540e1cec0b44b76d53d0b40360ea9"
1258
+ integrity sha512-CGNwVXCnsZa+X70apV0HUUOyQSf8w1jyG3GhPBv3Gh0X+Dppartlc3tsmkkYO1s9VbYgsTv0nTaaScsMVeFxcA==
1259
1259
  dependencies:
1260
1260
  "@oclif/core" "^4"
1261
1261
  "@salesforce/core" "^8.32.6"
@@ -403,5 +403,5 @@
403
403
  ]
404
404
  }
405
405
  },
406
- "version": "1.2.17"
406
+ "version": "1.3.0"
407
407
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@salesforce/plugin-bre-to-cml",
3
3
  "description": "Plugin for migrating BRE based configurator rules to CML.",
4
- "version": "1.2.17",
4
+ "version": "1.3.0",
5
5
  "salesforceRelease": "256.11",
6
6
  "dependencies": {
7
7
  "@oclif/core": "^4",
@@ -15,7 +15,7 @@
15
15
  "@oclif/test": "^4.1.21",
16
16
  "@salesforce/cli-plugins-testkit": "^5.3.64",
17
17
  "@salesforce/dev-scripts": "^11.0.4",
18
- "@salesforce/plugin-command-reference": "^3.1.128",
18
+ "@salesforce/plugin-command-reference": "^3.1.131",
19
19
  "@types/node": "^22.20.1",
20
20
  "eslint-config-salesforce-license": "^1.0.2",
21
21
  "eslint-plugin-sf-plugin": "^1.20.33",
@@ -221,7 +221,7 @@
221
221
  "type": "module",
222
222
  "author": "George Kibilov",
223
223
  "sfdx": {
224
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-bre-to-cml/1.2.17.crt",
225
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-bre-to-cml/1.2.17.sig"
224
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-bre-to-cml/1.3.0.crt",
225
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-bre-to-cml/1.3.0.sig"
226
226
  }
227
227
  }