@salesforce/plugin-bre-to-cml 1.3.0 → 1.3.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.
Files changed (50) hide show
  1. package/README.md +117 -4
  2. package/lib/commands/cml/convert/surcharge-rules.d.ts +12 -0
  3. package/lib/commands/cml/convert/surcharge-rules.js +79 -5
  4. package/lib/commands/cml/convert/surcharge-rules.js.map +1 -1
  5. package/lib/commands/cml/convert/underwriting-rules.d.ts +41 -2
  6. package/lib/commands/cml/convert/underwriting-rules.js +141 -17
  7. package/lib/commands/cml/convert/underwriting-rules.js.map +1 -1
  8. package/lib/commands/insurance/import/record-updates.d.ts +66 -0
  9. package/lib/commands/insurance/import/record-updates.js +239 -0
  10. package/lib/commands/insurance/import/record-updates.js.map +1 -0
  11. package/lib/shared/cml-operators.d.ts +9 -1
  12. package/lib/shared/cml-operators.js +23 -5
  13. package/lib/shared/cml-operators.js.map +1 -1
  14. package/lib/shared/insurance/confirm-org-changes.d.ts +49 -0
  15. package/lib/shared/insurance/confirm-org-changes.js +43 -0
  16. package/lib/shared/insurance/confirm-org-changes.js.map +1 -0
  17. package/lib/shared/insurance/insurance-cml-merge.d.ts +100 -13
  18. package/lib/shared/insurance/insurance-cml-merge.js +355 -54
  19. package/lib/shared/insurance/insurance-cml-merge.js.map +1 -1
  20. package/lib/shared/insurance/insurance-context-tags.d.ts +124 -0
  21. package/lib/shared/insurance/insurance-context-tags.js +210 -0
  22. package/lib/shared/insurance/insurance-context-tags.js.map +1 -0
  23. package/lib/shared/insurance/insurance-org.d.ts +12 -0
  24. package/lib/shared/insurance/insurance-org.js +38 -2
  25. package/lib/shared/insurance/insurance-org.js.map +1 -1
  26. package/lib/shared/insurance/insurance-rule-convert-command.d.ts +27 -0
  27. package/lib/shared/insurance/insurance-rule-convert-command.js +57 -4
  28. package/lib/shared/insurance/insurance-rule-convert-command.js.map +1 -1
  29. package/lib/shared/insurance/insurance-rule-generator.d.ts +101 -8
  30. package/lib/shared/insurance/insurance-rule-generator.js +293 -42
  31. package/lib/shared/insurance/insurance-rule-generator.js.map +1 -1
  32. package/lib/shared/insurance/models.d.ts +2 -1
  33. package/lib/shared/insurance/planned-change-mapper.d.ts +15 -0
  34. package/lib/shared/insurance/planned-change-mapper.js +51 -0
  35. package/lib/shared/insurance/planned-change-mapper.js.map +1 -0
  36. package/lib/shared/insurance/planned-change.d.ts +83 -0
  37. package/lib/shared/insurance/planned-change.js +74 -0
  38. package/lib/shared/insurance/planned-change.js.map +1 -0
  39. package/lib/shared/insurance/record-update-apply.d.ts +100 -0
  40. package/lib/shared/insurance/record-update-apply.js +303 -0
  41. package/lib/shared/insurance/record-update-apply.js.map +1 -0
  42. package/lib/shared/insurance/record-update-plan.d.ts +104 -0
  43. package/lib/shared/insurance/record-update-plan.js +397 -0
  44. package/lib/shared/insurance/record-update-plan.js.map +1 -0
  45. package/messages/cml.convert.surcharge-rules.md +3 -1
  46. package/messages/cml.convert.underwriting-rules.md +1 -1
  47. package/messages/insurance.import.record-updates.md +176 -0
  48. package/oclif.lock +25 -25
  49. package/oclif.manifest.json +95 -3
  50. package/package.json +16 -8
@@ -22,7 +22,7 @@ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
22
22
  import { Messages } from '@salesforce/core';
23
23
  import { generateCsvForAssociations } from '../utils/association.utils.js';
24
24
  import { buildCmlModel, isSafeAssociationReferenceValue, sanitizeName } from './insurance-rule-generator.js';
25
- import { discoverCmlApiByProducts, fetchProductCodes } from './insurance-org.js';
25
+ import { discoverCmlApiByProducts, fetchAttributeDataTypes, fetchProductCodes } from './insurance-org.js';
26
26
  import { splitProductPath } from './insurance-cml-merge.js';
27
27
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
28
28
  const messages = Messages.loadMessages('@salesforce/plugin-bre-to-cml', 'cml.convert.insurance-shared');
@@ -57,6 +57,21 @@ export class InsuranceRuleConvertCommand extends SfCommand {
57
57
  // When defined, eligibility is emitted as a CML `rule(...)` statement tagged with this rule
58
58
  // type instead of a `constraint`. Subclasses that want the constraint form leave it undefined.
59
59
  ruleType;
60
+ /**
61
+ * AttributeDefinition id -> the data type its condition values must be compared as, resolved once
62
+ * per run and shared by build and merge mode. Populated by {@link runConvert} before either mode
63
+ * builds a declaration; empty when no condition carries an attribute id.
64
+ */
65
+ attributeDataTypes = new Map();
66
+ /**
67
+ * Product2 ids named by some rule's ProductPath that the Product2 query did not return — the same
68
+ * condition {@link resolveProductCodes} already warns about per id, captured so later reporting can
69
+ * tell an operator that a rule is blocked permanently (the product does not exist / is not visible
70
+ * here) rather than blocked until the next run. Deliberately populated only on the path that emits
71
+ * that warning: when the query itself fails no id is recorded, so nothing can claim a product was
72
+ * absent when we simply never learned.
73
+ */
74
+ productIdsMissingFromOrg = new Set();
60
75
  async runConvert(ctx) {
61
76
  // Tripwire: convert is now strictly file-only. The legacy --update-records flag mutated the org
62
77
  // as a side effect; it is removed, and passing it errors with a pointer to the new flow.
@@ -81,13 +96,17 @@ export class InsuranceRuleConvertCommand extends SfCommand {
81
96
  }
82
97
  const ruleDefs = this.parseAllRecords(records);
83
98
  const { productIdToCode, productIdToName } = await this.resolveProductCodes(conn, ruleDefs);
99
+ this.attributeDataTypes = await this.resolveAttributeDataTypes(conn, ruleDefs);
84
100
  const api = ctx.cmlApi ?? (await this.discoverCmlApi(conn, ruleDefs, productIdToCode));
85
101
  const safeApi = api.replace(/[^a-zA-Z0-9_-]/g, '_');
86
102
  if (ctx.mergeWithOrg) {
87
103
  return this.runMergeConvert(ctx, conn, records, ruleDefs, productIdToCode, api, safeApi, workspaceDir);
88
104
  }
89
- const { cmlModel, ruleKeyMapping } = buildCmlModel(ruleDefs, productIdToCode, this.keyPrefix, this.constraintLabel, this.ruleType, productIdToName);
105
+ const { cmlModel, ruleKeyMapping, skipped } = buildCmlModel(ruleDefs, productIdToCode, this.keyPrefix, this.constraintLabel, this.ruleType, productIdToName, this.attributeDataTypes);
90
106
  ruleKeyMapping.forEach((m) => this.log(` -> ${m.name} => ${m.ruleKey}`));
107
+ // Mirrors the merge modes' SKIPPED lines: a rule the generator refused is named with its
108
+ // reason, never dropped in silence.
109
+ skipped.forEach((s) => this.warn(` SKIPPED ${s.name}: ${s.reason}`));
91
110
  const recordUpdateFile = await this.writeRecordUpdateFile(records, ruleKeyMapping, api, safeApi, workspaceDir);
92
111
  return this.writeOutputFiles(cmlModel, ruleKeyMapping, safeApi, workspaceDir, api, recordUpdateFile);
93
112
  }
@@ -123,7 +142,7 @@ export class InsuranceRuleConvertCommand extends SfCommand {
123
142
  this.log('\nNext steps (this command wrote nothing to the org):');
124
143
  this.log(' 1. Review the merged .cml file (diff against the org model) and the record update file');
125
144
  this.log(` 2. Activate the CML: sf cml import as-expression-set --cml-api ${api} --context-definition <CD_NAME> --target-org <org>`);
126
- this.log(` 3. Apply the org-record changes enumerated in ${recordUpdateFile} to the target org`);
145
+ this.log(` 3. Apply the org-record changes: sf insurance import record-updates --file ${recordUpdateFile} --target-org <org>`);
127
146
  return { cmlFile: cmlPath, associationsFile: associationsPath, ruleKeyMapping, recordUpdateFile };
128
147
  }
129
148
  /**
@@ -198,6 +217,37 @@ export class InsuranceRuleConvertCommand extends SfCommand {
198
217
  this.log(`Parsed ${parsed.length} valid rule definitions`);
199
218
  return parsed;
200
219
  }
220
+ /**
221
+ * Resolves the comparable data type of every attribute the rules reference.
222
+ *
223
+ * A condition reports `dataType: 'Picklist'`, which is not a comparable type — a Deductible whose
224
+ * values are 250/500/1000 sits behind a Currency picklist. Unresolved, its values are emitted
225
+ * quoted while the same model declares the attribute `decimal`, so the rule compares a decimal
226
+ * against a string and never fires.
227
+ *
228
+ * A failure here is downgraded to a warning rather than aborting the convert: without resolution
229
+ * every value falls back to the string-quoted path, which is the pre-existing behavior.
230
+ */
231
+ async resolveAttributeDataTypes(conn, ruleDefs) {
232
+ const attributeIds = new Set();
233
+ for (const { ruleDef } of ruleDefs) {
234
+ for (const criteria of ruleDef.ruleCriteria ?? []) {
235
+ for (const condition of criteria.conditions ?? []) {
236
+ if (condition.attributeId)
237
+ attributeIds.add(condition.attributeId);
238
+ }
239
+ }
240
+ }
241
+ if (attributeIds.size === 0)
242
+ return new Map();
243
+ try {
244
+ return await fetchAttributeDataTypes(conn, attributeIds);
245
+ }
246
+ catch (err) {
247
+ this.warn(`Could not resolve attribute data types (${err instanceof Error ? err.message : String(err)}); picklist values will be compared as strings and numeric comparisons may not fire`);
248
+ return new Map();
249
+ }
250
+ }
201
251
  async resolveProductCodes(conn, ruleDefs) {
202
252
  // Collect EVERY ProductPath segment, not just the root: merge mode needs the code of each
203
253
  // segment to build the platform-compatible pathed rule key, and the leaf segment's code to
@@ -219,12 +269,15 @@ export class InsuranceRuleConvertCommand extends SfCommand {
219
269
  // ids mean the Product2 row is invalid / deleted / outside the visible scope — generation
220
270
  // will silently fall back to the raw Id for that path segment, again yielding a non-matching
221
271
  // platform RuleKey. Surface this case explicitly so the operator can investigate.
272
+ const missingFromOrg = new Set();
222
273
  for (const id of productIds) {
223
274
  if (!productIdToCode.has(id)) {
275
+ missingFromOrg.add(id);
224
276
  this.warn(`Product ${id} was not returned by Product2 query (not found, not visible, or filtered out); ` +
225
277
  'rule key for paths through this product will fall back to the raw Id and may not match the platform-generated RuleKey');
226
278
  }
227
279
  }
280
+ this.productIdsMissingFromOrg = missingFromOrg;
228
281
  this.validateAssociationNames(productIdToName);
229
282
  return { productIdToCode, productIdToName };
230
283
  }
@@ -305,7 +358,7 @@ export class InsuranceRuleConvertCommand extends SfCommand {
305
358
  this.log('\nNext steps (this command wrote nothing to the org):');
306
359
  this.log(' 1. Review the generated .cml file and the record update file');
307
360
  this.log(` 2. Activate the CML: sf cml import as-expression-set --cml-api ${api} --context-definition <CD_NAME> --target-org <org>`);
308
- this.log(` 3. Apply the org-record changes enumerated in ${recordUpdateFile} to the target org`);
361
+ this.log(` 3. Apply the org-record changes: sf insurance import record-updates --file ${recordUpdateFile} --target-org <org>`);
309
362
  return { cmlFile: cmlPath, associationsFile: associationsPath, ruleKeyMapping, recordUpdateFile };
310
363
  }
311
364
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insurance-rule-convert-command.js","sourceRoot":"","sources":["../../../src/shared/insurance/insurance-rule-convert-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insurance-rule-convert-command.js","sourceRoot":"","sources":["../../../src/shared/insurance/insurance-rule-convert-command.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,45 @@
1
1
  import { CmlModel } from '../types/types.js';
2
2
  import { ParsedRuleDefinition, RuleCriteria, RuleKeyEntry, RuleRecord, UnderwritingRuleGroup } from './models.js';
3
+ /**
4
+ * AttributeDefinition id -> the data type its values must be compared as, resolved from the org by
5
+ * {@link fetchAttributeDataTypes}.
6
+ *
7
+ * Needed because a condition reports `dataType: 'Picklist'`, and a picklist carries no comparable
8
+ * type of its own — a Deductible whose values are 250/500/1000 sits behind a Currency picklist.
9
+ * Left unresolved, its values are emitted quoted while PcmGenerator declares the attribute
10
+ * `decimal`, so the model compares a decimal against a string literal and the rule never fires.
11
+ */
12
+ export type AttributeDataTypes = ReadonlyMap<string, string>;
13
+ /**
14
+ * Raw context tag name -> the type the org's ContextAttribute declares for it. Structurally the
15
+ * subset of `ContextTagBindings` this module needs, declared here rather than imported so the
16
+ * generator keeps no dependency on the org-fetch layer.
17
+ *
18
+ * Needed for the same reason {@link AttributeDataTypes} is: a Tag condition's own `dataType` is a
19
+ * snapshot taken by the rule engine, while ContextAttribute.DataType is what the model will be made
20
+ * to declare. Feeding the resolved type through here — rather than only into the declaration —
21
+ * keeps the two in step, so a tag can never be declared `decimal(2)` and then compared as a quoted
22
+ * string (the never-fires mismatch `collectAttributeTypes` already guards against on the attribute
23
+ * path).
24
+ */
25
+ export type ContextTagDataTypes = ReadonlyMap<string, {
26
+ sourceDataType: string;
27
+ }>;
28
+ /**
29
+ * The context tags a rule actually EMITS a reference to — the Tag-condition counterpart of
30
+ * {@link collectEmittedAttributes}, and its exact discipline: a condition the safe-literal guard,
31
+ * an unknown operator or a missing value dropped contributes nothing, because its tag never reaches
32
+ * the declaration and so needs no binding.
33
+ *
34
+ * Names are returned RAW (not sanitized): the raw title is what resolves against ContextTag.Title
35
+ * and what the emitted `tagName` / `contextPath` annotation must carry. Sanitizing is the
36
+ * identifier's problem, not the binding's.
37
+ */
38
+ export declare function collectEmittedContextTags(ruleDefs: Array<{
39
+ ruleDef: {
40
+ ruleCriteria?: RuleCriteria[];
41
+ };
42
+ }>, attributeDataTypes?: AttributeDataTypes, contextTagDataTypes?: ContextTagDataTypes): Set<string>;
3
43
  export declare function sanitizeName(name: string): string;
4
44
  /**
5
45
  * Decodes the common HTML entities that can appear in a RuleDefinition / DynamicRuleDefinition
@@ -21,9 +61,52 @@ export declare function generateRuleKey(prefix: string, productCode: string, api
21
61
  * stance of {@link isSafeQuotableString} for condition values.
22
62
  */
23
63
  export declare function isSafeAssociationReferenceValue(value: string): boolean;
64
+ /**
65
+ * The reasons, if any, why a rule cannot be converted faithfully — one per offending condition.
66
+ * A rule with any reason must be SKIPPED with those reasons reported, never partially converted.
67
+ *
68
+ * Dropping just the offending condition is not an option: `buildConstraintDeclaration` returns
69
+ * `true` once every condition of a criteria is gone, and nothing downstream withholds a rule whose
70
+ * declaration is `true`, so a rule that lost its conditions arrives matching everything. That is
71
+ * the empty-`dataType` defect, and the guard exists so a new cause cannot re-create it. Dropping
72
+ * one condition of several is no better — it widens what the rule matches.
73
+ *
74
+ * Two of the three causes today are a condition CML has no primitive for.
75
+ *
76
+ * A date-typed condition whose value carries a time: CML has no datetime primitive, so the
77
+ * alternatives were to emit a timestamp into a `date` slot (platform behavior unverified) or to
78
+ * silently truncate it to its date part (changes what the rule matches, with no signal).
79
+ *
80
+ * A substring test (Contains / DoesNotContain) on an attribute that is not a string: `strcontain`
81
+ * is a string function, and against a `decimal`, `boolean` or `date` attribute there is nothing
82
+ * faithful to emit — quoting the value produces the never-fires type mismatch, and unquoting it is
83
+ * not a substring test at all.
84
+ *
85
+ * In both cases declining the rule and saying so beats emitting something that quietly does nothing.
86
+ *
87
+ * The third reason is not about one condition but about the rule as a whole: a rule whose criteria
88
+ * existed and lost EVERY condition — see {@link collapsesToUnconditional}. It is raised here rather
89
+ * than through a second mechanism because this function is the single point all three skip-reason
90
+ * collectors (`buildCmlModel`, `buildPathedSurchargeRules`, `buildUnderwritingConstraintRules`)
91
+ * already consult, so every caller withholds the rule the same way and a future caller cannot get
92
+ * half the behaviour.
93
+ */
94
+ export declare function findUnconvertibleConditions(ruleDef: {
95
+ ruleCriteria?: RuleCriteria[];
96
+ apiName?: string;
97
+ name?: string;
98
+ }, attributeDataTypes?: AttributeDataTypes, contextTagDataTypes?: ContextTagDataTypes): string[];
99
+ /**
100
+ * Both `'true'` returns below are deliberate and stay total — the function must answer for any
101
+ * input, because merge mode builds a rule's statement before deciding whether to place it, and
102
+ * throwing here would bypass a caller's skip handling. Only the FIRST is a faithful conversion (a
103
+ * rule with no criteria really does always apply). The second means every expression was dropped,
104
+ * which {@link findUnconvertibleConditions} classifies as unconvertible so the callers that collect
105
+ * skip reasons withhold the rule instead of placing this declaration.
106
+ */
24
107
  export declare function buildConstraintDeclaration(ruleDef: {
25
108
  ruleCriteria?: RuleCriteria[];
26
- }): string;
109
+ }, attributeDataTypes?: AttributeDataTypes, contextTagDataTypes?: ContextTagDataTypes): string;
27
110
  export declare function collectAttributes(ruleDefs: Array<{
28
111
  ruleDef: {
29
112
  ruleCriteria?: RuleCriteria[];
@@ -42,22 +125,32 @@ export declare function collectEmittedAttributes(ruleDefs: Array<{
42
125
  ruleDef: {
43
126
  ruleCriteria?: RuleCriteria[];
44
127
  };
45
- }>): Set<string>;
128
+ }>, attributeDataTypes?: AttributeDataTypes, contextTagDataTypes?: ContextTagDataTypes): Set<string>;
46
129
  /**
47
- * Derives the real CML data type for each collected attribute from its condition `dataType`.
48
- * When an attribute appears with more than one distinct CML type (a conflict), or its type is
49
- * unknown, it falls back to STRING. Returned alongside (not replacing) the Set from
50
- * collectAttributes, which merge mode still depends on.
130
+ * Derives the real CML data type for each collected attribute from its resolved data type (falling
131
+ * back to the condition's own `dataType`). When an attribute appears with more than one distinct CML
132
+ * type (a conflict), or its type is unknown, it falls back to STRING. Returned alongside (not
133
+ * replacing) the Set from collectAttributes, which merge mode still depends on.
134
+ *
135
+ * Shares `conditionDataType` with the declaration builder so an attribute is never declared as one
136
+ * type and then compared as another.
51
137
  */
52
138
  export declare function collectAttributeTypes(ruleDefs: Array<{
53
139
  ruleDef: {
54
140
  ruleCriteria?: RuleCriteria[];
55
141
  };
56
- }>): Map<string, string>;
142
+ }>, attributeDataTypes?: AttributeDataTypes): Map<string, string>;
143
+ /** A rule withheld from the built model, with the reason to report to the operator. */
144
+ export type SkippedRule = {
145
+ recordId: string;
146
+ name: string;
147
+ reason: string;
148
+ };
57
149
  export declare function buildCmlModel(ruleDefs: Array<{
58
150
  record: RuleRecord;
59
151
  ruleDef: ParsedRuleDefinition;
60
- }>, productIdToCode: Map<string, string>, keyPrefix: string, constraintLabel: string, ruleType?: string, productIdToName?: Map<string, string>): {
152
+ }>, productIdToCode: Map<string, string>, keyPrefix: string, constraintLabel: string, ruleType?: string, productIdToName?: Map<string, string>, attributeDataTypes?: AttributeDataTypes): {
61
153
  cmlModel: CmlModel;
62
154
  ruleKeyMapping: RuleKeyEntry[];
155
+ skipped: SkippedRule[];
63
156
  };